채팅 탭의 캐릭터 리스트 - 폰 언어 설정에 따라 번역 데이터를 조회하도록 수정
This commit is contained in:
@@ -16,6 +16,7 @@ import retrofit2.http.Query
|
|||||||
interface CharacterApi {
|
interface CharacterApi {
|
||||||
@GET("/api/chat/character/main")
|
@GET("/api/chat/character/main")
|
||||||
fun getCharacterMain(
|
fun getCharacterMain(
|
||||||
|
@Query("languageCode") languageCode: String,
|
||||||
@Header("Authorization") authHeader: String
|
@Header("Authorization") authHeader: String
|
||||||
): Single<ApiResponse<CharacterHomeResponse>>
|
): Single<ApiResponse<CharacterHomeResponse>>
|
||||||
|
|
||||||
@@ -49,12 +50,14 @@ interface CharacterApi {
|
|||||||
fun getRecentCharacters(
|
fun getRecentCharacters(
|
||||||
@Header("Authorization") authHeader: String,
|
@Header("Authorization") authHeader: String,
|
||||||
@Query("page") page: Int,
|
@Query("page") page: Int,
|
||||||
@Query("size") size: Int
|
@Query("size") size: Int,
|
||||||
|
@Query("languageCode") languageCode: String
|
||||||
): Single<ApiResponse<kr.co.vividnext.sodalive.chat.character.newcharacters.RecentCharactersResponse>>
|
): Single<ApiResponse<kr.co.vividnext.sodalive.chat.character.newcharacters.RecentCharactersResponse>>
|
||||||
|
|
||||||
// 추천 캐릭터 새로고침
|
// 추천 캐릭터 새로고침
|
||||||
@GET("/api/chat/character/recommend")
|
@GET("/api/chat/character/recommend")
|
||||||
fun refreshRecommendCharacters(
|
fun refreshRecommendCharacters(
|
||||||
|
@Query("languageCode") languageCode: String,
|
||||||
@Header("Authorization") authHeader: String
|
@Header("Authorization") authHeader: String
|
||||||
): Single<ApiResponse<List<Character>>>
|
): Single<ApiResponse<List<Character>>>
|
||||||
|
|
||||||
|
|||||||
@@ -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.chat.character.recent.RecentCharacterAdapter
|
||||||
import kr.co.vividnext.sodalive.common.LoadingDialog
|
import kr.co.vividnext.sodalive.common.LoadingDialog
|
||||||
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
|
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.databinding.FragmentCharacterTabBinding
|
||||||
import kr.co.vividnext.sodalive.extensions.dpToPx
|
import kr.co.vividnext.sodalive.extensions.dpToPx
|
||||||
import kr.co.vividnext.sodalive.main.MainActivity
|
import kr.co.vividnext.sodalive.main.MainActivity
|
||||||
@@ -56,7 +57,7 @@ class CharacterTabFragment : BaseFragment<FragmentCharacterTabBinding>(
|
|||||||
setupView()
|
setupView()
|
||||||
observeViewModel()
|
observeViewModel()
|
||||||
|
|
||||||
viewModel.fetchData()
|
viewModel.fetchData(languageCode = getCurrentLanguageCode(requireContext()))
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupView() {
|
private fun setupView() {
|
||||||
@@ -354,7 +355,9 @@ class CharacterTabFragment : BaseFragment<FragmentCharacterTabBinding>(
|
|||||||
|
|
||||||
// 새로고침 버튼 클릭 처리
|
// 새로고침 버튼 클릭 처리
|
||||||
binding.ivRecommendRefresh.setOnClickListener {
|
binding.ivRecommendRefresh.setOnClickListener {
|
||||||
viewModel.refreshRecommendCharacters()
|
viewModel.refreshRecommendCharacters(
|
||||||
|
languageCode = getCurrentLanguageCode(requireContext())
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 추천 캐릭터 관찰
|
// 추천 캐릭터 관찰
|
||||||
|
|||||||
@@ -2,10 +2,15 @@ package kr.co.vividnext.sodalive.chat.character
|
|||||||
|
|
||||||
class CharacterTabRepository(private val api: CharacterApi) {
|
class CharacterTabRepository(private val api: CharacterApi) {
|
||||||
fun getCharacterMain(
|
fun getCharacterMain(
|
||||||
|
languageCode: String,
|
||||||
token: String
|
token: String
|
||||||
) = api.getCharacterMain(authHeader = token)
|
) = api.getCharacterMain(
|
||||||
|
languageCode = languageCode,
|
||||||
|
authHeader = token
|
||||||
|
)
|
||||||
|
|
||||||
fun refreshRecommendCharacters(
|
fun refreshRecommendCharacters(
|
||||||
|
languageCode: String,
|
||||||
token: String
|
token: String
|
||||||
) = api.refreshRecommendCharacters(authHeader = token)
|
) = api.refreshRecommendCharacters(languageCode = languageCode, authHeader = token)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,11 +46,14 @@ class CharacterTabViewModel(
|
|||||||
val recommendCharacters: LiveData<List<Character>>
|
val recommendCharacters: LiveData<List<Character>>
|
||||||
get() = _recommendCharacters
|
get() = _recommendCharacters
|
||||||
|
|
||||||
fun fetchData() {
|
fun fetchData(languageCode: String) {
|
||||||
_isLoading.value = true
|
_isLoading.value = true
|
||||||
|
|
||||||
compositeDisposable.add(
|
compositeDisposable.add(
|
||||||
repository.getCharacterMain(token = "Bearer ${SharedPreferenceManager.token}")
|
repository.getCharacterMain(
|
||||||
|
languageCode = languageCode,
|
||||||
|
token = "Bearer ${SharedPreferenceManager.token}"
|
||||||
|
)
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.subscribe(
|
.subscribe(
|
||||||
@@ -80,10 +83,13 @@ class CharacterTabViewModel(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun refreshRecommendCharacters() {
|
fun refreshRecommendCharacters(languageCode: String) {
|
||||||
_isLoading.value = true
|
_isLoading.value = true
|
||||||
compositeDisposable.add(
|
compositeDisposable.add(
|
||||||
repository.refreshRecommendCharacters(token = "Bearer ${SharedPreferenceManager.token}")
|
repository.refreshRecommendCharacters(
|
||||||
|
languageCode = languageCode,
|
||||||
|
token = "Bearer ${SharedPreferenceManager.token}"
|
||||||
|
)
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.subscribe(
|
.subscribe(
|
||||||
|
|||||||
@@ -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.chat.character.detail.CharacterDetailActivity.Companion.EXTRA_CHARACTER_ID
|
||||||
import kr.co.vividnext.sodalive.common.GridSpacingItemDecoration
|
import kr.co.vividnext.sodalive.common.GridSpacingItemDecoration
|
||||||
import kr.co.vividnext.sodalive.common.LoadingDialog
|
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.databinding.ActivityNewCharactersAllBinding
|
||||||
import kr.co.vividnext.sodalive.extensions.dpToPx
|
import kr.co.vividnext.sodalive.extensions.dpToPx
|
||||||
import org.koin.android.ext.android.inject
|
import org.koin.android.ext.android.inject
|
||||||
@@ -28,6 +29,7 @@ class NewCharactersAllActivity : BaseActivity<ActivityNewCharactersAllBinding>(
|
|||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
setupView()
|
setupView()
|
||||||
bindData()
|
bindData()
|
||||||
|
viewModel.languageCode = getCurrentLanguageCode(this)
|
||||||
viewModel.loadMore()
|
viewModel.loadMore()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,8 @@ class NewCharactersAllViewModel(
|
|||||||
private val _items = MutableLiveData<List<Character>>(emptyList())
|
private val _items = MutableLiveData<List<Character>>(emptyList())
|
||||||
val items: LiveData<List<Character>> get() = _items
|
val items: LiveData<List<Character>> get() = _items
|
||||||
|
|
||||||
|
var languageCode: String = "ko"
|
||||||
|
|
||||||
private var page = 0
|
private var page = 0
|
||||||
private val size = 20
|
private val size = 20
|
||||||
private var isLast = false
|
private var isLast = false
|
||||||
@@ -39,7 +41,8 @@ class NewCharactersAllViewModel(
|
|||||||
repository.getRecentCharacters(
|
repository.getRecentCharacters(
|
||||||
token = "Bearer ${SharedPreferenceManager.token}",
|
token = "Bearer ${SharedPreferenceManager.token}",
|
||||||
page = page,
|
page = page,
|
||||||
size = size
|
size = size,
|
||||||
|
languageCode = languageCode
|
||||||
)
|
)
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
|||||||
@@ -10,12 +10,14 @@ class NewCharactersRepository(
|
|||||||
fun getRecentCharacters(
|
fun getRecentCharacters(
|
||||||
token: String,
|
token: String,
|
||||||
page: Int,
|
page: Int,
|
||||||
size: Int
|
size: Int,
|
||||||
|
languageCode: String
|
||||||
): Single<ApiResponse<RecentCharactersResponse>> {
|
): Single<ApiResponse<RecentCharactersResponse>> {
|
||||||
return api.getRecentCharacters(
|
return api.getRecentCharacters(
|
||||||
authHeader = token,
|
authHeader = token,
|
||||||
page = page,
|
page = page,
|
||||||
size = size
|
size = size,
|
||||||
|
languageCode = languageCode
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user