콘텐츠 전체보기 - 폰 언어 설정에 따라 번역 데이터를 조회하도록 수정

This commit is contained in:
2025-12-12 05:58:25 +09:00
parent 0854b76dfa
commit ebd557ff71
8 changed files with 36 additions and 13 deletions

View File

@@ -22,6 +22,7 @@ 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
@@ -63,6 +64,7 @@ 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() }
} }

View File

@@ -39,6 +39,7 @@ 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,
@@ -54,6 +55,7 @@ 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,
@@ -185,6 +187,7 @@ 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,

View File

@@ -18,6 +18,7 @@ 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,
@@ -25,6 +26,7 @@ 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,
@@ -115,6 +117,7 @@ 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,
@@ -123,6 +126,7 @@ 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,
@@ -198,12 +202,14 @@ 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,

View File

@@ -49,6 +49,7 @@ 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
@@ -61,6 +62,7 @@ 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}",

View File

@@ -17,6 +17,7 @@ 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
@@ -43,6 +44,7 @@ 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,

View File

@@ -9,8 +9,8 @@ import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.audio_content.AudioContentRepository import kr.co.vividnext.sodalive.audio_content.AudioContentRepository
import kr.co.vividnext.sodalive.audio_content.AudioContentViewModel import kr.co.vividnext.sodalive.audio_content.AudioContentViewModel
import kr.co.vividnext.sodalive.base.BaseViewModel import kr.co.vividnext.sodalive.base.BaseViewModel
import kr.co.vividnext.sodalive.common.SodaLiveApplicationHolder
import kr.co.vividnext.sodalive.common.SharedPreferenceManager import kr.co.vividnext.sodalive.common.SharedPreferenceManager
import kr.co.vividnext.sodalive.common.SodaLiveApplicationHolder
import kr.co.vividnext.sodalive.home.AudioContentMainItem import kr.co.vividnext.sodalive.home.AudioContentMainItem
class AudioContentAllViewModel( class AudioContentAllViewModel(
@@ -34,6 +34,8 @@ 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
@@ -92,6 +94,7 @@ 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!!,

View File

@@ -17,6 +17,7 @@ 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
@@ -42,6 +43,7 @@ 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)
} }

View File

@@ -35,6 +35,8 @@ 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
@@ -47,6 +49,7 @@ class AudioContentNewAllViewModel(
compositeDisposable.add( compositeDisposable.add(
repository.getNewContentAllOfTheme( repository.getNewContentAllOfTheme(
languageCode = languageCode,
isFree = isFree, isFree = isFree,
theme = selectedTheme, theme = selectedTheme,
page = page, page = page,