feat(content): 콘텐츠 이동 가드를 보강한다
This commit is contained in:
@@ -26,6 +26,7 @@ import kr.co.vividnext.sodalive.home.SeriesPublishedDaysOfWeek
|
||||
import kr.co.vividnext.sodalive.v2.common.data.ContentSort
|
||||
import kr.co.vividnext.sodalive.v2.creator.channel.model.toLabelResId
|
||||
import kr.co.vividnext.sodalive.v2.creator.channel.ui.CreatorChannelSortPopup
|
||||
import kr.co.vividnext.sodalive.v2.main.ensureMainV2NavigationAllowed
|
||||
import kr.co.vividnext.sodalive.v2.main.content.data.AudioRankingType
|
||||
import kr.co.vividnext.sodalive.v2.main.content.data.MainContentAllType
|
||||
import kr.co.vividnext.sodalive.v2.main.content.model.AudioRankingsUiState
|
||||
@@ -86,9 +87,11 @@ class ContentMainFragment : BaseFragment<FragmentV2MainContentBinding>(
|
||||
private val recommendedAudioAdapter = ContentAudioCardAdapter(AudioContentCardSize.Large) { openAudioContentDetail(it) }
|
||||
private val contentRankingAdapter = ContentRankingAdapter { openRankingAudioContentDetail(it) }
|
||||
private val contentAllAudioCardAdapter = ContentAllAudioCardAdapter { audioContentId ->
|
||||
openAudioContentDetail(audioContentId)
|
||||
openAudioContentDetail(audioContentId, findAllTabAudioAdultAccess(audioContentId))
|
||||
}
|
||||
private val contentAllSeriesCardAdapter = ContentAllSeriesCardAdapter { seriesId ->
|
||||
openSeriesDetail(seriesId, findAllTabSeriesAdultAccess(seriesId))
|
||||
}
|
||||
private val contentAllSeriesCardAdapter = ContentAllSeriesCardAdapter { seriesId -> openSeriesDetail(seriesId) }
|
||||
private var bannerBinder: ContentBannerBinder? = null
|
||||
private var sortPopup: CreatorChannelSortPopup? = null
|
||||
private var isRecommendationLoading = false
|
||||
@@ -520,24 +523,31 @@ class ContentMainFragment : BaseFragment<FragmentV2MainContentBinding>(
|
||||
|
||||
private fun onBannerClick(item: ContentBannerUiModel) {
|
||||
val route = item.toContentBannerRoute() ?: return
|
||||
startActivity(route.toContentBannerIntent(requireContext()))
|
||||
ensureMainV2NavigationAllowed {
|
||||
startActivity(route.toContentBannerIntent(requireContext()))
|
||||
}
|
||||
}
|
||||
|
||||
private fun openAudioContentDetail(item: ContentAudioCardUiModel) {
|
||||
openAudioContentDetail(item.audioContentId)
|
||||
openAudioContentDetail(item.audioContentId, item.showAdultBadge)
|
||||
}
|
||||
|
||||
private fun openAudioContentDetail(item: ContentCommentedAudioUiModel) {
|
||||
openAudioContentDetail(item.audioContentId)
|
||||
}
|
||||
|
||||
private fun openAudioContentDetail(audioContentId: Long) {
|
||||
private fun openAudioContentDetail(
|
||||
audioContentId: Long,
|
||||
requiresAdultContentAccess: Boolean = false
|
||||
) {
|
||||
if (audioContentId <= 0L) return
|
||||
startActivity(
|
||||
Intent(requireContext(), AudioContentDetailActivity::class.java).apply {
|
||||
putExtra(Constants.EXTRA_AUDIO_CONTENT_ID, audioContentId)
|
||||
}
|
||||
)
|
||||
ensureMainV2NavigationAllowed(requiresAdultContentAccess = requiresAdultContentAccess) {
|
||||
startActivity(
|
||||
Intent(requireContext(), AudioContentDetailActivity::class.java).apply {
|
||||
putExtra(Constants.EXTRA_AUDIO_CONTENT_ID, audioContentId)
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private fun openRankingAudioContentDetail(item: ContentRankingItem) {
|
||||
@@ -550,13 +560,28 @@ class ContentMainFragment : BaseFragment<FragmentV2MainContentBinding>(
|
||||
openSeriesDetail(seriesId)
|
||||
}
|
||||
|
||||
private fun openSeriesDetail(seriesId: Long) {
|
||||
private fun openSeriesDetail(
|
||||
seriesId: Long,
|
||||
requiresAdultContentAccess: Boolean = false
|
||||
) {
|
||||
if (seriesId <= 0L) return
|
||||
startActivity(
|
||||
Intent(requireContext(), SeriesDetailActivity::class.java).apply {
|
||||
putExtra(Constants.EXTRA_SERIES_ID, seriesId)
|
||||
}
|
||||
)
|
||||
ensureMainV2NavigationAllowed(requiresAdultContentAccess = requiresAdultContentAccess) {
|
||||
startActivity(
|
||||
Intent(requireContext(), SeriesDetailActivity::class.java).apply {
|
||||
putExtra(Constants.EXTRA_SERIES_ID, seriesId)
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private fun findAllTabAudioAdultAccess(audioContentId: Long): Boolean {
|
||||
val state = currentAllTabState as? MainContentAllTabUiState.Content ?: return false
|
||||
return state.audioItems.firstOrNull { it.audioContentId == audioContentId }?.showAdultBadge == true
|
||||
}
|
||||
|
||||
private fun findAllTabSeriesAdultAccess(seriesId: Long): Boolean {
|
||||
val state = currentAllTabState as? MainContentAllTabUiState.Content ?: return false
|
||||
return state.seriesItems.firstOrNull { it.seriesId == seriesId }?.showAdultBadge == true
|
||||
}
|
||||
|
||||
private fun showToast(toastMessage: ToastMessage) {
|
||||
|
||||
Reference in New Issue
Block a user