feat(creator): FanTalk 탭 화면 연결을 추가한다
This commit is contained in:
@@ -63,6 +63,7 @@ import kr.co.vividnext.sodalive.v2.creator.channel.data.CreatorChannelAudioConte
|
||||
import kr.co.vividnext.sodalive.v2.creator.channel.data.CreatorChannelLiveResponse
|
||||
import kr.co.vividnext.sodalive.v2.creator.channel.data.CreatorChannelScheduleResponse
|
||||
import kr.co.vividnext.sodalive.v2.creator.channel.data.CreatorChannelSeriesResponse
|
||||
import kr.co.vividnext.sodalive.v2.creator.channel.fantalk.CreatorChannelFanTalkFragment
|
||||
import kr.co.vividnext.sodalive.v2.creator.channel.live.CreatorChannelLiveFragment
|
||||
import kr.co.vividnext.sodalive.v2.creator.channel.model.CreatorChannelHeaderUiModel
|
||||
import kr.co.vividnext.sodalive.v2.creator.channel.model.CreatorChannelScrollState
|
||||
@@ -83,7 +84,8 @@ class CreatorChannelActivity :
|
||||
CreatorChannelLiveFragment.Host,
|
||||
CreatorChannelAudioFragment.Host,
|
||||
CreatorChannelSeriesFragment.Host,
|
||||
CreatorChannelCommunityFragment.Host {
|
||||
CreatorChannelCommunityFragment.Host,
|
||||
CreatorChannelFanTalkFragment.Host {
|
||||
|
||||
private val liveViewModel: LiveViewModel by inject()
|
||||
private val myPageViewModel: MyPageViewModel by inject()
|
||||
@@ -430,6 +432,9 @@ class CreatorChannelActivity :
|
||||
CreatorChannelTab.Community.ordinal -> binding.viewPager.post {
|
||||
findCommunityFragment()?.onCreatorChannelCommunityTabSelected()
|
||||
}
|
||||
CreatorChannelTab.FanTalk.ordinal -> binding.viewPager.post {
|
||||
findFanTalkFragment()?.onCreatorChannelFanTalkTabSelected()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -458,6 +463,11 @@ class CreatorChannelActivity :
|
||||
findCommunityFragment()?.onCreatorChannelCommunityTabSelected()
|
||||
}
|
||||
}
|
||||
if (binding.viewPager.currentItem == CreatorChannelTab.FanTalk.ordinal) {
|
||||
binding.viewPager.post {
|
||||
findFanTalkFragment()?.onCreatorChannelFanTalkTabSelected()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreatorChannelFollowProgressChanged(inProgress: Boolean) {
|
||||
@@ -532,6 +542,27 @@ class CreatorChannelActivity :
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreatorChannelFanTalkContentChanged() {
|
||||
updateViewPagerHeight {
|
||||
postCheckCreatorChannelCurrentTabNeedsMore()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreatorChannelFanTalkDeleteClicked(fanTalkId: Long) {
|
||||
SodaDialog(
|
||||
activity = this,
|
||||
layoutInflater = layoutInflater,
|
||||
title = getString(R.string.screen_user_profile_cheer_delete_title),
|
||||
desc = getString(R.string.screen_user_profile_cheer_delete_desc),
|
||||
confirmButtonTitle = getString(R.string.confirm_delete_title),
|
||||
confirmButtonClick = {
|
||||
findFanTalkFragment()?.onCreatorChannelFanTalkDeleteConfirmed(fanTalkId)
|
||||
},
|
||||
cancelButtonTitle = getString(R.string.cancel),
|
||||
cancelButtonClick = {}
|
||||
).show(screenWidth)
|
||||
}
|
||||
|
||||
override fun onCreatorChannelCommunityOwnerMoreClicked(item: CreatorChannelCommunityPostUiModel) {
|
||||
CreatorCommunityPostMenuBottomSheetDialog(
|
||||
isFixed = item.isPinned,
|
||||
@@ -623,6 +654,10 @@ class CreatorChannelActivity :
|
||||
findCommunityFragment()?.onCreatorChannelCommunityRefreshRequested()
|
||||
}
|
||||
|
||||
private fun refreshCreatorChannelFanTalk() {
|
||||
findFanTalkFragment()?.onCreatorChannelFanTalkRefreshRequested()
|
||||
}
|
||||
|
||||
private fun setupOwnerFabInsets() {
|
||||
binding.viewPager.updatePadding(bottom = OWNER_FAB_CONTENT_BOTTOM_PADDING_DP.dpToPx().toInt())
|
||||
}
|
||||
@@ -817,12 +852,18 @@ class CreatorChannelActivity :
|
||||
return supportFragmentManager.findFragmentByTag(fragmentTag) as? CreatorChannelCommunityFragment
|
||||
}
|
||||
|
||||
private fun findFanTalkFragment(): CreatorChannelFanTalkFragment? {
|
||||
val fragmentTag = "f${CreatorChannelTab.FanTalk.ordinal}"
|
||||
return supportFragmentManager.findFragmentByTag(fragmentTag) as? CreatorChannelFanTalkFragment
|
||||
}
|
||||
|
||||
private fun notifyCurrentCreatorChannelTabScrolledToBottom() {
|
||||
when (binding.viewPager.currentItem) {
|
||||
CreatorChannelTab.Live.ordinal -> findLiveFragment()?.onCreatorChannelLiveScrolledToBottom()
|
||||
CreatorChannelTab.Audio.ordinal -> findAudioFragment()?.onCreatorChannelAudioScrolledToBottom()
|
||||
CreatorChannelTab.Series.ordinal -> findSeriesFragment()?.onCreatorChannelSeriesScrolledToBottom()
|
||||
CreatorChannelTab.Community.ordinal -> findCommunityFragment()?.onCreatorChannelCommunityScrolledToBottom()
|
||||
CreatorChannelTab.FanTalk.ordinal -> findFanTalkFragment()?.onCreatorChannelFanTalkScrolledToBottom()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -830,7 +871,8 @@ class CreatorChannelActivity :
|
||||
return position == CreatorChannelTab.Live.ordinal ||
|
||||
position == CreatorChannelTab.Audio.ordinal ||
|
||||
position == CreatorChannelTab.Series.ordinal ||
|
||||
position == CreatorChannelTab.Community.ordinal
|
||||
position == CreatorChannelTab.Community.ordinal ||
|
||||
position == CreatorChannelTab.FanTalk.ordinal
|
||||
}
|
||||
|
||||
private fun ensureLoginAndAdultAuth(isAdult: Boolean, onAuthed: () -> Unit) {
|
||||
@@ -928,6 +970,7 @@ class CreatorChannelActivity :
|
||||
CreatorChannelTab.Live.ordinal -> findLiveFragment()?.onCreatorChannelLiveViewportHeightChanged(minHeight)
|
||||
CreatorChannelTab.Audio.ordinal -> findAudioFragment()?.onCreatorChannelAudioViewportHeightChanged(minHeight)
|
||||
CreatorChannelTab.Series.ordinal -> findSeriesFragment()?.onCreatorChannelSeriesViewportHeightChanged(minHeight)
|
||||
CreatorChannelTab.FanTalk.ordinal -> findFanTalkFragment()?.onCreatorChannelFanTalkViewportHeightChanged(minHeight)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ import androidx.fragment.app.FragmentActivity
|
||||
import androidx.viewpager2.adapter.FragmentStateAdapter
|
||||
import kr.co.vividnext.sodalive.v2.creator.channel.audio.CreatorChannelAudioFragment
|
||||
import kr.co.vividnext.sodalive.v2.creator.channel.community.CreatorChannelCommunityFragment
|
||||
import kr.co.vividnext.sodalive.v2.creator.channel.fantalk.CreatorChannelFanTalkFragment
|
||||
import kr.co.vividnext.sodalive.v2.creator.channel.live.CreatorChannelLiveFragment
|
||||
import kr.co.vividnext.sodalive.v2.creator.channel.model.CreatorChannelTab
|
||||
import kr.co.vividnext.sodalive.v2.creator.channel.series.CreatorChannelSeriesFragment
|
||||
@@ -25,6 +26,7 @@ class CreatorChannelPagerAdapter(
|
||||
CreatorChannelTab.Audio -> CreatorChannelAudioFragment.newInstance(creatorId)
|
||||
CreatorChannelTab.Series -> CreatorChannelSeriesFragment.newInstance(creatorId)
|
||||
CreatorChannelTab.Community -> CreatorChannelCommunityFragment.newInstance(creatorId)
|
||||
CreatorChannelTab.FanTalk -> CreatorChannelFanTalkFragment.newInstance(creatorId)
|
||||
else -> CreatorChannelPlaceholderFragment.newInstance(tab)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user