API 별로 언어 코드를 쿼리 파라미터로 전송하는 코드 제거
This commit is contained in:
@@ -22,7 +22,6 @@ import kr.co.vividnext.sodalive.base.BaseActivity
|
|||||||
import kr.co.vividnext.sodalive.common.Constants
|
import kr.co.vividnext.sodalive.common.Constants
|
||||||
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
|
|
||||||
import kr.co.vividnext.sodalive.databinding.ActivityAudioContentBinding
|
import kr.co.vividnext.sodalive.databinding.ActivityAudioContentBinding
|
||||||
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
|
||||||
@@ -64,7 +63,6 @@ class AudioContentActivity : BaseActivity<ActivityAudioContentBinding>(
|
|||||||
}
|
}
|
||||||
|
|
||||||
bindData()
|
bindData()
|
||||||
viewModel.languageCode = Utils.getCurrentLanguageCode(applicationContext)
|
|
||||||
viewModel.getCategoryList(userId = userId)
|
viewModel.getCategoryList(userId = userId)
|
||||||
viewModel.getAudioContentList(userId = userId) { finish() }
|
viewModel.getAudioContentList(userId = userId) { finish() }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,6 @@ import retrofit2.http.Query
|
|||||||
interface AudioContentApi {
|
interface AudioContentApi {
|
||||||
@GET("/audio-content/all")
|
@GET("/audio-content/all")
|
||||||
fun getAllAudioContents(
|
fun getAllAudioContents(
|
||||||
@Query("languageCode") languageCode: String,
|
|
||||||
@Query("isAdultContentVisible") isAdultContentVisible: Boolean,
|
@Query("isAdultContentVisible") isAdultContentVisible: Boolean,
|
||||||
@Query("contentType") contentType: ContentType,
|
@Query("contentType") contentType: ContentType,
|
||||||
@Query("page") page: Int,
|
@Query("page") page: Int,
|
||||||
@@ -55,7 +54,6 @@ interface AudioContentApi {
|
|||||||
fun getAudioContentList(
|
fun getAudioContentList(
|
||||||
@Query("creator-id") id: Long,
|
@Query("creator-id") id: Long,
|
||||||
@Query("category-id") categoryId: Long,
|
@Query("category-id") categoryId: Long,
|
||||||
@Query("languageCode") languageCode: String,
|
|
||||||
@Query("isAdultContentVisible") isAdultContentVisible: Boolean,
|
@Query("isAdultContentVisible") isAdultContentVisible: Boolean,
|
||||||
@Query("page") page: Int,
|
@Query("page") page: Int,
|
||||||
@Query("size") size: Int,
|
@Query("size") size: Int,
|
||||||
@@ -107,7 +105,6 @@ interface AudioContentApi {
|
|||||||
@GET("/audio-content/{id}")
|
@GET("/audio-content/{id}")
|
||||||
fun getAudioContentDetail(
|
fun getAudioContentDetail(
|
||||||
@Path("id") id: Long,
|
@Path("id") id: Long,
|
||||||
@Query("languageCode") languageCode: String?,
|
|
||||||
@Query("timezone") timezone: String,
|
@Query("timezone") timezone: String,
|
||||||
@Header("Authorization") authHeader: String
|
@Header("Authorization") authHeader: String
|
||||||
): Single<ApiResponse<GetAudioContentDetailResponse>>
|
): Single<ApiResponse<GetAudioContentDetailResponse>>
|
||||||
@@ -187,7 +184,6 @@ interface AudioContentApi {
|
|||||||
fun getNewContentAllOfTheme(
|
fun getNewContentAllOfTheme(
|
||||||
@Query("isFree") isFree: Boolean,
|
@Query("isFree") isFree: Boolean,
|
||||||
@Query("theme") theme: String,
|
@Query("theme") theme: String,
|
||||||
@Query("languageCode") languageCode: String,
|
|
||||||
@Query("isAdultContentVisible") isAdultContentVisible: Boolean,
|
@Query("isAdultContentVisible") isAdultContentVisible: Boolean,
|
||||||
@Query("contentType") contentType: ContentType,
|
@Query("contentType") contentType: ContentType,
|
||||||
@Query("page") page: Int,
|
@Query("page") page: Int,
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ class AudioContentRepository(
|
|||||||
fun getAudioContentList(
|
fun getAudioContentList(
|
||||||
id: Long,
|
id: Long,
|
||||||
categoryId: Long,
|
categoryId: Long,
|
||||||
languageCode: String,
|
|
||||||
page: Int,
|
page: Int,
|
||||||
size: Int,
|
size: Int,
|
||||||
sort: AudioContentViewModel.Sort,
|
sort: AudioContentViewModel.Sort,
|
||||||
@@ -26,7 +25,6 @@ class AudioContentRepository(
|
|||||||
) = api.getAudioContentList(
|
) = api.getAudioContentList(
|
||||||
id = id,
|
id = id,
|
||||||
categoryId = categoryId,
|
categoryId = categoryId,
|
||||||
languageCode = languageCode,
|
|
||||||
isAdultContentVisible = SharedPreferenceManager.isAdultContentVisible,
|
isAdultContentVisible = SharedPreferenceManager.isAdultContentVisible,
|
||||||
page = page - 1,
|
page = page - 1,
|
||||||
size = size,
|
size = size,
|
||||||
@@ -74,11 +72,9 @@ class AudioContentRepository(
|
|||||||
|
|
||||||
fun getAudioContentDetail(
|
fun getAudioContentDetail(
|
||||||
audioContentId: Long,
|
audioContentId: Long,
|
||||||
languageCode: String? = null,
|
|
||||||
token: String
|
token: String
|
||||||
) = api.getAudioContentDetail(
|
) = api.getAudioContentDetail(
|
||||||
id = audioContentId,
|
id = audioContentId,
|
||||||
languageCode = languageCode,
|
|
||||||
timezone = TimeZone.getDefault().id,
|
timezone = TimeZone.getDefault().id,
|
||||||
authHeader = token
|
authHeader = token
|
||||||
)
|
)
|
||||||
@@ -117,7 +113,6 @@ class AudioContentRepository(
|
|||||||
) = api.likeContent(request, authHeader = token)
|
) = api.likeContent(request, authHeader = token)
|
||||||
|
|
||||||
fun getNewContentAllOfTheme(
|
fun getNewContentAllOfTheme(
|
||||||
languageCode: String,
|
|
||||||
isFree: Boolean,
|
isFree: Boolean,
|
||||||
theme: String,
|
theme: String,
|
||||||
page: Int,
|
page: Int,
|
||||||
@@ -126,7 +121,6 @@ class AudioContentRepository(
|
|||||||
) = api.getNewContentAllOfTheme(
|
) = api.getNewContentAllOfTheme(
|
||||||
isFree = isFree,
|
isFree = isFree,
|
||||||
theme = theme,
|
theme = theme,
|
||||||
languageCode = languageCode,
|
|
||||||
isAdultContentVisible = SharedPreferenceManager.isAdultContentVisible,
|
isAdultContentVisible = SharedPreferenceManager.isAdultContentVisible,
|
||||||
contentType = ContentType.entries[SharedPreferenceManager.contentPreference],
|
contentType = ContentType.entries[SharedPreferenceManager.contentPreference],
|
||||||
page = page - 1,
|
page = page - 1,
|
||||||
@@ -202,14 +196,12 @@ class AudioContentRepository(
|
|||||||
fun getAllAudioContents(
|
fun getAllAudioContents(
|
||||||
page: Int,
|
page: Int,
|
||||||
size: Int,
|
size: Int,
|
||||||
languageCode: String,
|
|
||||||
isFree: Boolean? = null,
|
isFree: Boolean? = null,
|
||||||
isPointAvailableOnly: Boolean? = null,
|
isPointAvailableOnly: Boolean? = null,
|
||||||
sortType: AudioContentViewModel.Sort = AudioContentViewModel.Sort.NEWEST,
|
sortType: AudioContentViewModel.Sort = AudioContentViewModel.Sort.NEWEST,
|
||||||
theme: String? = null,
|
theme: String? = null,
|
||||||
token: String
|
token: String
|
||||||
) = api.getAllAudioContents(
|
) = api.getAllAudioContents(
|
||||||
languageCode = languageCode,
|
|
||||||
isAdultContentVisible = SharedPreferenceManager.isAdultContentVisible,
|
isAdultContentVisible = SharedPreferenceManager.isAdultContentVisible,
|
||||||
contentType = ContentType.entries[SharedPreferenceManager.contentPreference],
|
contentType = ContentType.entries[SharedPreferenceManager.contentPreference],
|
||||||
page = page - 1,
|
page = page - 1,
|
||||||
|
|||||||
@@ -49,7 +49,6 @@ class AudioContentViewModel(private val repository: AudioContentRepository) : Ba
|
|||||||
POPULARITY
|
POPULARITY
|
||||||
}
|
}
|
||||||
|
|
||||||
var languageCode: String = "ko"
|
|
||||||
var isLast = false
|
var isLast = false
|
||||||
var page = 1
|
var page = 1
|
||||||
private val size = 10
|
private val size = 10
|
||||||
@@ -62,7 +61,6 @@ class AudioContentViewModel(private val repository: AudioContentRepository) : Ba
|
|||||||
repository.getAudioContentList(
|
repository.getAudioContentList(
|
||||||
id = userId,
|
id = userId,
|
||||||
categoryId = selectedCategoryId,
|
categoryId = selectedCategoryId,
|
||||||
languageCode = languageCode,
|
|
||||||
page = page,
|
page = page,
|
||||||
size = size,
|
size = size,
|
||||||
token = "Bearer ${SharedPreferenceManager.token}",
|
token = "Bearer ${SharedPreferenceManager.token}",
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ import kr.co.vividnext.sodalive.base.BaseActivity
|
|||||||
import kr.co.vividnext.sodalive.common.Constants
|
import kr.co.vividnext.sodalive.common.Constants
|
||||||
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.ActivityAudioContentAllBinding
|
import kr.co.vividnext.sodalive.databinding.ActivityAudioContentAllBinding
|
||||||
import kr.co.vividnext.sodalive.extensions.dpToPx
|
import kr.co.vividnext.sodalive.extensions.dpToPx
|
||||||
import kr.co.vividnext.sodalive.home.HomeContentAdapter
|
import kr.co.vividnext.sodalive.home.HomeContentAdapter
|
||||||
@@ -44,7 +43,6 @@ class AudioContentAllActivity : BaseActivity<ActivityAudioContentAllBinding>(
|
|||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
bindData()
|
bindData()
|
||||||
viewModel.languageCode = getCurrentLanguageCode(this)
|
|
||||||
viewModel.reset()
|
viewModel.reset()
|
||||||
viewModel.getThemeList(
|
viewModel.getThemeList(
|
||||||
isFree = if (isFree) true else null,
|
isFree = if (isFree) true else null,
|
||||||
|
|||||||
@@ -34,8 +34,6 @@ class AudioContentAllViewModel(
|
|||||||
val sortLiveData: LiveData<AudioContentViewModel.Sort>
|
val sortLiveData: LiveData<AudioContentViewModel.Sort>
|
||||||
get() = _sortLiveData
|
get() = _sortLiveData
|
||||||
|
|
||||||
var languageCode: String = "ko"
|
|
||||||
|
|
||||||
private var page = 1
|
private var page = 1
|
||||||
private val size = 20
|
private val size = 20
|
||||||
private var isLast = false
|
private var isLast = false
|
||||||
@@ -94,7 +92,6 @@ class AudioContentAllViewModel(
|
|||||||
repository.getAllAudioContents(
|
repository.getAllAudioContents(
|
||||||
page = page,
|
page = page,
|
||||||
size = size,
|
size = size,
|
||||||
languageCode = languageCode,
|
|
||||||
isFree = isFree,
|
isFree = isFree,
|
||||||
isPointAvailableOnly = isPointAvailableOnly,
|
isPointAvailableOnly = isPointAvailableOnly,
|
||||||
sortType = _sortLiveData.value!!,
|
sortType = _sortLiveData.value!!,
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ import kr.co.vividnext.sodalive.base.BaseActivity
|
|||||||
import kr.co.vividnext.sodalive.common.Constants
|
import kr.co.vividnext.sodalive.common.Constants
|
||||||
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.ActivityAudioContentNewAllBinding
|
import kr.co.vividnext.sodalive.databinding.ActivityAudioContentNewAllBinding
|
||||||
import kr.co.vividnext.sodalive.explorer.profile.UserProfileActivity
|
import kr.co.vividnext.sodalive.explorer.profile.UserProfileActivity
|
||||||
import kr.co.vividnext.sodalive.extensions.dpToPx
|
import kr.co.vividnext.sodalive.extensions.dpToPx
|
||||||
@@ -43,7 +42,6 @@ class AudioContentNewAllActivity : BaseActivity<ActivityAudioContentNewAllBindin
|
|||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
bindData()
|
bindData()
|
||||||
viewModel.languageCode = getCurrentLanguageCode(this)
|
|
||||||
viewModel.getThemeList()
|
viewModel.getThemeList()
|
||||||
viewModel.getNewContentList(isFree = isFree)
|
viewModel.getNewContentList(isFree = isFree)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,8 +35,6 @@ class AudioContentNewAllViewModel(
|
|||||||
val newContentTotalCountLiveData: LiveData<Int>
|
val newContentTotalCountLiveData: LiveData<Int>
|
||||||
get() = _newContentTotalCountLiveData
|
get() = _newContentTotalCountLiveData
|
||||||
|
|
||||||
var languageCode: String = "ko"
|
|
||||||
|
|
||||||
private var isLast = false
|
private var isLast = false
|
||||||
private var page = 1
|
private var page = 1
|
||||||
private val size = 10
|
private val size = 10
|
||||||
@@ -49,7 +47,6 @@ class AudioContentNewAllViewModel(
|
|||||||
|
|
||||||
compositeDisposable.add(
|
compositeDisposable.add(
|
||||||
repository.getNewContentAllOfTheme(
|
repository.getNewContentAllOfTheme(
|
||||||
languageCode = languageCode,
|
|
||||||
isFree = isFree,
|
isFree = isFree,
|
||||||
theme = selectedTheme,
|
theme = selectedTheme,
|
||||||
page = page,
|
page = page,
|
||||||
|
|||||||
@@ -43,7 +43,6 @@ import kr.co.vividnext.sodalive.common.Constants
|
|||||||
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
|
import kr.co.vividnext.sodalive.common.Utils
|
||||||
import kr.co.vividnext.sodalive.common.Utils.getCurrentLanguageCode
|
|
||||||
import kr.co.vividnext.sodalive.databinding.ActivityAudioContentDetailBinding
|
import kr.co.vividnext.sodalive.databinding.ActivityAudioContentDetailBinding
|
||||||
import kr.co.vividnext.sodalive.explorer.profile.CreatorFollowNotifyFragment
|
import kr.co.vividnext.sodalive.explorer.profile.CreatorFollowNotifyFragment
|
||||||
import kr.co.vividnext.sodalive.explorer.profile.UserProfileActivity
|
import kr.co.vividnext.sodalive.explorer.profile.UserProfileActivity
|
||||||
@@ -130,7 +129,6 @@ class AudioContentDetailActivity : BaseActivity<ActivityAudioContentDetailBindin
|
|||||||
}
|
}
|
||||||
|
|
||||||
bindData()
|
bindData()
|
||||||
viewModel.languageCode = getCurrentLanguageCode(applicationContext)
|
|
||||||
viewModel.getAudioContentDetail(audioContentId = audioContentId) { finish() }
|
viewModel.getAudioContentDetail(audioContentId = audioContentId) { finish() }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -55,8 +55,6 @@ class AudioContentDetailViewModel(
|
|||||||
val isContentPlayLoopLiveData: LiveData<Boolean>
|
val isContentPlayLoopLiveData: LiveData<Boolean>
|
||||||
get() = _isContentPlayLoopLiveData
|
get() = _isContentPlayLoopLiveData
|
||||||
|
|
||||||
var languageCode: String = "ko"
|
|
||||||
|
|
||||||
private fun getString(@StringRes resId: Int, vararg args: Any) =
|
private fun getString(@StringRes resId: Int, vararg args: Any) =
|
||||||
SodaLiveApplicationHolder.get().getString(resId, *args)
|
SodaLiveApplicationHolder.get().getString(resId, *args)
|
||||||
|
|
||||||
@@ -71,7 +69,6 @@ class AudioContentDetailViewModel(
|
|||||||
compositeDisposable.add(
|
compositeDisposable.add(
|
||||||
repository.getAudioContentDetail(
|
repository.getAudioContentDetail(
|
||||||
audioContentId = audioContentId,
|
audioContentId = audioContentId,
|
||||||
languageCode = languageCode,
|
|
||||||
token = "Bearer ${SharedPreferenceManager.token}"
|
token = "Bearer ${SharedPreferenceManager.token}"
|
||||||
)
|
)
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
|
|||||||
@@ -16,15 +16,13 @@ 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>>
|
||||||
|
|
||||||
@GET("/api/chat/character/{characterId}")
|
@GET("/api/chat/character/{characterId}")
|
||||||
fun getCharacterDetail(
|
fun getCharacterDetail(
|
||||||
@Header("Authorization") authHeader: String,
|
@Header("Authorization") authHeader: String,
|
||||||
@Path("characterId") characterId: Long,
|
@Path("characterId") characterId: Long
|
||||||
@Query("languageCode") languageCode: String
|
|
||||||
): Single<ApiResponse<CharacterDetailResponse>>
|
): Single<ApiResponse<CharacterDetailResponse>>
|
||||||
|
|
||||||
@GET("/api/chat/character/image/list")
|
@GET("/api/chat/character/image/list")
|
||||||
@@ -50,14 +48,12 @@ 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,7 +27,6 @@ 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
|
||||||
@@ -57,7 +56,7 @@ class CharacterTabFragment : BaseFragment<FragmentCharacterTabBinding>(
|
|||||||
setupView()
|
setupView()
|
||||||
observeViewModel()
|
observeViewModel()
|
||||||
|
|
||||||
viewModel.fetchData(languageCode = getCurrentLanguageCode(requireContext()))
|
viewModel.fetchData()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupView() {
|
private fun setupView() {
|
||||||
@@ -355,9 +354,7 @@ class CharacterTabFragment : BaseFragment<FragmentCharacterTabBinding>(
|
|||||||
|
|
||||||
// 새로고침 버튼 클릭 처리
|
// 새로고침 버튼 클릭 처리
|
||||||
binding.ivRecommendRefresh.setOnClickListener {
|
binding.ivRecommendRefresh.setOnClickListener {
|
||||||
viewModel.refreshRecommendCharacters(
|
viewModel.refreshRecommendCharacters()
|
||||||
languageCode = getCurrentLanguageCode(requireContext())
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 추천 캐릭터 관찰
|
// 추천 캐릭터 관찰
|
||||||
|
|||||||
@@ -1,16 +1,9 @@
|
|||||||
package kr.co.vividnext.sodalive.chat.character
|
package kr.co.vividnext.sodalive.chat.character
|
||||||
|
|
||||||
class CharacterTabRepository(private val api: CharacterApi) {
|
class CharacterTabRepository(private val api: CharacterApi) {
|
||||||
fun getCharacterMain(
|
fun getCharacterMain(token: String) = api.getCharacterMain(authHeader = token)
|
||||||
languageCode: String,
|
|
||||||
token: String
|
|
||||||
) = api.getCharacterMain(
|
|
||||||
languageCode = languageCode,
|
|
||||||
authHeader = token
|
|
||||||
)
|
|
||||||
|
|
||||||
fun refreshRecommendCharacters(
|
fun refreshRecommendCharacters(
|
||||||
languageCode: String,
|
|
||||||
token: String
|
token: String
|
||||||
) = api.refreshRecommendCharacters(languageCode = languageCode, authHeader = token)
|
) = api.refreshRecommendCharacters(authHeader = token)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,12 +46,11 @@ class CharacterTabViewModel(
|
|||||||
val recommendCharacters: LiveData<List<Character>>
|
val recommendCharacters: LiveData<List<Character>>
|
||||||
get() = _recommendCharacters
|
get() = _recommendCharacters
|
||||||
|
|
||||||
fun fetchData(languageCode: String) {
|
fun fetchData() {
|
||||||
_isLoading.value = true
|
_isLoading.value = true
|
||||||
|
|
||||||
compositeDisposable.add(
|
compositeDisposable.add(
|
||||||
repository.getCharacterMain(
|
repository.getCharacterMain(
|
||||||
languageCode = languageCode,
|
|
||||||
token = "Bearer ${SharedPreferenceManager.token}"
|
token = "Bearer ${SharedPreferenceManager.token}"
|
||||||
)
|
)
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
@@ -83,11 +82,10 @@ class CharacterTabViewModel(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun refreshRecommendCharacters(languageCode: String) {
|
fun refreshRecommendCharacters() {
|
||||||
_isLoading.value = true
|
_isLoading.value = true
|
||||||
compositeDisposable.add(
|
compositeDisposable.add(
|
||||||
repository.refreshRecommendCharacters(
|
repository.refreshRecommendCharacters(
|
||||||
languageCode = languageCode,
|
|
||||||
token = "Bearer ${SharedPreferenceManager.token}"
|
token = "Bearer ${SharedPreferenceManager.token}"
|
||||||
)
|
)
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ import kr.co.vividnext.sodalive.chat.character.detail.CharacterDetailActivity.Co
|
|||||||
import kr.co.vividnext.sodalive.chat.talk.room.ChatRoomActivity
|
import kr.co.vividnext.sodalive.chat.talk.room.ChatRoomActivity
|
||||||
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.FragmentCharacterDetailBinding
|
import kr.co.vividnext.sodalive.databinding.FragmentCharacterDetailBinding
|
||||||
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
|
||||||
@@ -79,7 +78,7 @@ class CharacterDetailFragment : BaseFragment<FragmentCharacterDetailBinding>(
|
|||||||
setupView()
|
setupView()
|
||||||
bindObservers()
|
bindObservers()
|
||||||
|
|
||||||
viewModel.load(characterId, languageCode = getCurrentLanguageCode(requireContext()))
|
viewModel.load(characterId)
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("SetTextI18n")
|
@SuppressLint("SetTextI18n")
|
||||||
@@ -318,8 +317,7 @@ class CharacterDetailFragment : BaseFragment<FragmentCharacterDetailBinding>(
|
|||||||
binding.etCommentInput.setText("")
|
binding.etCommentInput.setText("")
|
||||||
showToast(getString(R.string.character_detail_comment_register_success))
|
showToast(getString(R.string.character_detail_comment_register_success))
|
||||||
viewModel.load(
|
viewModel.load(
|
||||||
targetCharacterId,
|
targetCharacterId
|
||||||
languageCode = getCurrentLanguageCode(requireContext())
|
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
showToast(
|
showToast(
|
||||||
|
|||||||
@@ -10,12 +10,10 @@ class CharacterDetailRepository(
|
|||||||
) {
|
) {
|
||||||
fun getCharacterDetail(
|
fun getCharacterDetail(
|
||||||
token: String,
|
token: String,
|
||||||
characterId: Long,
|
characterId: Long
|
||||||
languageCode: String
|
|
||||||
) = characterApi.getCharacterDetail(
|
) = characterApi.getCharacterDetail(
|
||||||
authHeader = token,
|
authHeader = token,
|
||||||
characterId = characterId,
|
characterId = characterId
|
||||||
languageCode = languageCode
|
|
||||||
)
|
)
|
||||||
|
|
||||||
fun createChatRoom(token: String, request: CreateChatRoomRequest) =
|
fun createChatRoom(token: String, request: CreateChatRoomRequest) =
|
||||||
|
|||||||
@@ -33,15 +33,14 @@ class CharacterDetailViewModel(
|
|||||||
private val _uiState = MutableLiveData(UiState())
|
private val _uiState = MutableLiveData(UiState())
|
||||||
val uiState: LiveData<UiState> get() = _uiState
|
val uiState: LiveData<UiState> get() = _uiState
|
||||||
|
|
||||||
fun load(characterId: Long, languageCode: String) {
|
fun load(characterId: Long) {
|
||||||
_uiState.value = _uiState.value?.copy(isLoading = true, error = null)
|
_uiState.value = _uiState.value?.copy(isLoading = true, error = null)
|
||||||
val token = "Bearer ${SharedPreferenceManager.token}"
|
val token = "Bearer ${SharedPreferenceManager.token}"
|
||||||
|
|
||||||
compositeDisposable.add(
|
compositeDisposable.add(
|
||||||
repository.getCharacterDetail(
|
repository.getCharacterDetail(
|
||||||
token = token,
|
token = token,
|
||||||
characterId = characterId,
|
characterId = characterId
|
||||||
languageCode = languageCode
|
|
||||||
)
|
)
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ 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
|
||||||
@@ -29,7 +28,6 @@ class NewCharactersAllActivity : BaseActivity<ActivityNewCharactersAllBinding>(
|
|||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
setupView()
|
setupView()
|
||||||
bindData()
|
bindData()
|
||||||
viewModel.languageCode = getCurrentLanguageCode(this)
|
|
||||||
viewModel.loadMore()
|
viewModel.loadMore()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,8 +27,6 @@ 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
|
||||||
@@ -41,8 +39,7 @@ 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,14 +10,12 @@ 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
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,9 +41,4 @@ object Utils {
|
|||||||
|
|
||||||
return "https://voiceon.onelink.me/RkTm?$encodedParams"
|
return "https://voiceon.onelink.me/RkTm?$encodedParams"
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getCurrentLanguageCode(context: Context): String {
|
|
||||||
// 효과적 언어 코드(사용자 설정 > 시스템 지원 언어 > ko)를 반환한다.
|
|
||||||
return LanguageManager.getEffectiveLanguage(context)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ interface HomeApi {
|
|||||||
@GET("/api/home")
|
@GET("/api/home")
|
||||||
fun getHomeData(
|
fun getHomeData(
|
||||||
@Query("timezone") timezone: String,
|
@Query("timezone") timezone: String,
|
||||||
@Query("languageCode") languageCode: String,
|
|
||||||
@Query("isAdultContentVisible") isAdultContentVisible: Boolean,
|
@Query("isAdultContentVisible") isAdultContentVisible: Boolean,
|
||||||
@Query("contentType") contentType: ContentType,
|
@Query("contentType") contentType: ContentType,
|
||||||
@Header("Authorization") authHeader: String
|
@Header("Authorization") authHeader: String
|
||||||
|
|||||||
@@ -43,8 +43,6 @@ import kr.co.vividnext.sodalive.chat.character.detail.CharacterDetailActivity.Co
|
|||||||
import kr.co.vividnext.sodalive.common.Constants
|
import kr.co.vividnext.sodalive.common.Constants
|
||||||
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
|
|
||||||
import kr.co.vividnext.sodalive.common.Utils.getCurrentLanguageCode
|
|
||||||
import kr.co.vividnext.sodalive.databinding.FragmentHomeBinding
|
import kr.co.vividnext.sodalive.databinding.FragmentHomeBinding
|
||||||
import kr.co.vividnext.sodalive.explorer.profile.UserProfileActivity
|
import kr.co.vividnext.sodalive.explorer.profile.UserProfileActivity
|
||||||
import kr.co.vividnext.sodalive.extensions.dpToPx
|
import kr.co.vividnext.sodalive.extensions.dpToPx
|
||||||
@@ -125,7 +123,7 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>(FragmentHomeBinding::infl
|
|||||||
setupView()
|
setupView()
|
||||||
bindData()
|
bindData()
|
||||||
|
|
||||||
viewModel.fetchData(languageCode = getCurrentLanguageCode(requireContext()))
|
viewModel.fetchData()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroyView() {
|
override fun onDestroyView() {
|
||||||
|
|||||||
@@ -5,9 +5,8 @@ import kr.co.vividnext.sodalive.settings.ContentType
|
|||||||
import java.util.TimeZone
|
import java.util.TimeZone
|
||||||
|
|
||||||
class HomeRepository(private val api: HomeApi) {
|
class HomeRepository(private val api: HomeApi) {
|
||||||
fun fetchData(languageCode: String, token: String) = api.getHomeData(
|
fun fetchData(token: String) = api.getHomeData(
|
||||||
timezone = TimeZone.getDefault().id,
|
timezone = TimeZone.getDefault().id,
|
||||||
languageCode = languageCode,
|
|
||||||
isAdultContentVisible = SharedPreferenceManager.isAdultContentVisible,
|
isAdultContentVisible = SharedPreferenceManager.isAdultContentVisible,
|
||||||
contentType = ContentType.entries[SharedPreferenceManager.contentPreference],
|
contentType = ContentType.entries[SharedPreferenceManager.contentPreference],
|
||||||
authHeader = token
|
authHeader = token
|
||||||
|
|||||||
@@ -85,12 +85,11 @@ class HomeViewModel(
|
|||||||
val recommendContentListLiveData: LiveData<List<AudioContentMainItem>>
|
val recommendContentListLiveData: LiveData<List<AudioContentMainItem>>
|
||||||
get() = _recommendContentListLiveData
|
get() = _recommendContentListLiveData
|
||||||
|
|
||||||
fun fetchData(languageCode: String) {
|
fun fetchData() {
|
||||||
_isLoading.value = true
|
_isLoading.value = true
|
||||||
|
|
||||||
compositeDisposable.add(
|
compositeDisposable.add(
|
||||||
repository.fetchData(
|
repository.fetchData(
|
||||||
languageCode = languageCode,
|
|
||||||
token = "Bearer ${SharedPreferenceManager.token}"
|
token = "Bearer ${SharedPreferenceManager.token}"
|
||||||
)
|
)
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package kr.co.vividnext.sodalive.settings.language
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.LocaleList
|
import android.os.LocaleList
|
||||||
import android.text.TextUtils
|
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
|
|
||||||
object LocaleHelper {
|
object LocaleHelper {
|
||||||
|
|||||||
Reference in New Issue
Block a user