diff --git a/app/src/main/java/kr/co/vividnext/sodalive/chat/character/CharacterApi.kt b/app/src/main/java/kr/co/vividnext/sodalive/chat/character/CharacterApi.kt index 20d9159f..1af498b9 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/chat/character/CharacterApi.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/chat/character/CharacterApi.kt @@ -16,6 +16,7 @@ import retrofit2.http.Query interface CharacterApi { @GET("/api/chat/character/main") fun getCharacterMain( + @Query("languageCode") languageCode: String, @Header("Authorization") authHeader: String ): Single> @@ -49,12 +50,14 @@ interface CharacterApi { fun getRecentCharacters( @Header("Authorization") authHeader: String, @Query("page") page: Int, - @Query("size") size: Int + @Query("size") size: Int, + @Query("languageCode") languageCode: String ): Single> // 추천 캐릭터 새로고침 @GET("/api/chat/character/recommend") fun refreshRecommendCharacters( + @Query("languageCode") languageCode: String, @Header("Authorization") authHeader: String ): Single>> diff --git a/app/src/main/java/kr/co/vividnext/sodalive/chat/character/CharacterTabFragment.kt b/app/src/main/java/kr/co/vividnext/sodalive/chat/character/CharacterTabFragment.kt index 648760a3..f5060368 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/chat/character/CharacterTabFragment.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/chat/character/CharacterTabFragment.kt @@ -27,6 +27,7 @@ import kr.co.vividnext.sodalive.chat.character.newcharacters.NewCharactersAllAda import kr.co.vividnext.sodalive.chat.character.recent.RecentCharacterAdapter import kr.co.vividnext.sodalive.common.LoadingDialog import kr.co.vividnext.sodalive.common.SharedPreferenceManager +import kr.co.vividnext.sodalive.common.Utils.getCurrentLanguageCode import kr.co.vividnext.sodalive.databinding.FragmentCharacterTabBinding import kr.co.vividnext.sodalive.extensions.dpToPx import kr.co.vividnext.sodalive.main.MainActivity @@ -56,7 +57,7 @@ class CharacterTabFragment : BaseFragment( setupView() observeViewModel() - viewModel.fetchData() + viewModel.fetchData(languageCode = getCurrentLanguageCode(requireContext())) } private fun setupView() { @@ -354,7 +355,9 @@ class CharacterTabFragment : BaseFragment( // 새로고침 버튼 클릭 처리 binding.ivRecommendRefresh.setOnClickListener { - viewModel.refreshRecommendCharacters() + viewModel.refreshRecommendCharacters( + languageCode = getCurrentLanguageCode(requireContext()) + ) } // 추천 캐릭터 관찰 diff --git a/app/src/main/java/kr/co/vividnext/sodalive/chat/character/CharacterTabRepository.kt b/app/src/main/java/kr/co/vividnext/sodalive/chat/character/CharacterTabRepository.kt index 6687f81b..18d010d1 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/chat/character/CharacterTabRepository.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/chat/character/CharacterTabRepository.kt @@ -2,10 +2,15 @@ package kr.co.vividnext.sodalive.chat.character class CharacterTabRepository(private val api: CharacterApi) { fun getCharacterMain( + languageCode: String, token: String - ) = api.getCharacterMain(authHeader = token) + ) = api.getCharacterMain( + languageCode = languageCode, + authHeader = token + ) fun refreshRecommendCharacters( + languageCode: String, token: String - ) = api.refreshRecommendCharacters(authHeader = token) + ) = api.refreshRecommendCharacters(languageCode = languageCode, authHeader = token) } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/chat/character/CharacterTabViewModel.kt b/app/src/main/java/kr/co/vividnext/sodalive/chat/character/CharacterTabViewModel.kt index 4c69a19f..a0261d2e 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/chat/character/CharacterTabViewModel.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/chat/character/CharacterTabViewModel.kt @@ -46,11 +46,14 @@ class CharacterTabViewModel( val recommendCharacters: LiveData> get() = _recommendCharacters - fun fetchData() { + fun fetchData(languageCode: String) { _isLoading.value = true compositeDisposable.add( - repository.getCharacterMain(token = "Bearer ${SharedPreferenceManager.token}") + repository.getCharacterMain( + languageCode = languageCode, + token = "Bearer ${SharedPreferenceManager.token}" + ) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe( @@ -80,10 +83,13 @@ class CharacterTabViewModel( ) } - fun refreshRecommendCharacters() { + fun refreshRecommendCharacters(languageCode: String) { _isLoading.value = true compositeDisposable.add( - repository.refreshRecommendCharacters(token = "Bearer ${SharedPreferenceManager.token}") + repository.refreshRecommendCharacters( + languageCode = languageCode, + token = "Bearer ${SharedPreferenceManager.token}" + ) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe( diff --git a/app/src/main/java/kr/co/vividnext/sodalive/chat/character/newcharacters/NewCharactersAllActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/chat/character/newcharacters/NewCharactersAllActivity.kt index 73f60648..0b06a679 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/chat/character/newcharacters/NewCharactersAllActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/chat/character/newcharacters/NewCharactersAllActivity.kt @@ -12,6 +12,7 @@ import kr.co.vividnext.sodalive.chat.character.detail.CharacterDetailActivity import kr.co.vividnext.sodalive.chat.character.detail.CharacterDetailActivity.Companion.EXTRA_CHARACTER_ID import kr.co.vividnext.sodalive.common.GridSpacingItemDecoration import kr.co.vividnext.sodalive.common.LoadingDialog +import kr.co.vividnext.sodalive.common.Utils.getCurrentLanguageCode import kr.co.vividnext.sodalive.databinding.ActivityNewCharactersAllBinding import kr.co.vividnext.sodalive.extensions.dpToPx import org.koin.android.ext.android.inject @@ -28,6 +29,7 @@ class NewCharactersAllActivity : BaseActivity( super.onCreate(savedInstanceState) setupView() bindData() + viewModel.languageCode = getCurrentLanguageCode(this) viewModel.loadMore() } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/chat/character/newcharacters/NewCharactersAllViewModel.kt b/app/src/main/java/kr/co/vividnext/sodalive/chat/character/newcharacters/NewCharactersAllViewModel.kt index 9a0beed3..af6bb62c 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/chat/character/newcharacters/NewCharactersAllViewModel.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/chat/character/newcharacters/NewCharactersAllViewModel.kt @@ -27,6 +27,8 @@ class NewCharactersAllViewModel( private val _items = MutableLiveData>(emptyList()) val items: LiveData> get() = _items + var languageCode: String = "ko" + private var page = 0 private val size = 20 private var isLast = false @@ -39,7 +41,8 @@ class NewCharactersAllViewModel( repository.getRecentCharacters( token = "Bearer ${SharedPreferenceManager.token}", page = page, - size = size + size = size, + languageCode = languageCode ) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/chat/character/newcharacters/NewCharactersRepository.kt b/app/src/main/java/kr/co/vividnext/sodalive/chat/character/newcharacters/NewCharactersRepository.kt index 801b36eb..6ea3d8f2 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/chat/character/newcharacters/NewCharactersRepository.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/chat/character/newcharacters/NewCharactersRepository.kt @@ -10,12 +10,14 @@ class NewCharactersRepository( fun getRecentCharacters( token: String, page: Int, - size: Int + size: Int, + languageCode: String ): Single> { return api.getRecentCharacters( authHeader = token, page = page, - size = size + size = size, + languageCode = languageCode ) } }