feat(creator-channel): 커뮤니티 상세 진입점을 연결한다
This commit is contained in:
@@ -114,6 +114,12 @@
|
|||||||
<activity android:name=".v2.main.MainV2Activity" />
|
<activity android:name=".v2.main.MainV2Activity" />
|
||||||
<activity android:name=".v2.main.content.overview.ContentOverviewActivity" />
|
<activity android:name=".v2.main.content.overview.ContentOverviewActivity" />
|
||||||
<activity android:name=".v2.creator.channel.CreatorChannelActivity" />
|
<activity android:name=".v2.creator.channel.CreatorChannelActivity" />
|
||||||
|
<activity
|
||||||
|
android:name=".v2.creator.channel.community.detail.CreatorChannelCommunityDetailActivity"
|
||||||
|
android:windowSoftInputMode="stateAlwaysHidden|adjustResize" />
|
||||||
|
<activity
|
||||||
|
android:name=".v2.creator.channel.community.detail.reply.CreatorChannelCommunityReplyActivity"
|
||||||
|
android:windowSoftInputMode="stateAlwaysHidden|adjustResize" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".v2.creator.channel.fantalk.write.CreatorChannelFanTalkWriteActivity"
|
android:name=".v2.creator.channel.fantalk.write.CreatorChannelFanTalkWriteActivity"
|
||||||
android:windowSoftInputMode="stateVisible|adjustResize" />
|
android:windowSoftInputMode="stateVisible|adjustResize" />
|
||||||
|
|||||||
@@ -181,6 +181,8 @@ import kr.co.vividnext.sodalive.user.signup.SignUpViewModel
|
|||||||
import kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelHomeViewModel
|
import kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelHomeViewModel
|
||||||
import kr.co.vividnext.sodalive.v2.creator.channel.audio.CreatorChannelAudioViewModel
|
import kr.co.vividnext.sodalive.v2.creator.channel.audio.CreatorChannelAudioViewModel
|
||||||
import kr.co.vividnext.sodalive.v2.creator.channel.community.CreatorChannelCommunityViewModel
|
import kr.co.vividnext.sodalive.v2.creator.channel.community.CreatorChannelCommunityViewModel
|
||||||
|
import kr.co.vividnext.sodalive.v2.creator.channel.community.detail.CreatorChannelCommunityDetailViewModel
|
||||||
|
import kr.co.vividnext.sodalive.v2.creator.channel.community.detail.reply.CreatorChannelCommunityReplyViewModel
|
||||||
import kr.co.vividnext.sodalive.v2.creator.channel.data.CreatorChannelApi
|
import kr.co.vividnext.sodalive.v2.creator.channel.data.CreatorChannelApi
|
||||||
import kr.co.vividnext.sodalive.v2.creator.channel.data.CreatorChannelRepository
|
import kr.co.vividnext.sodalive.v2.creator.channel.data.CreatorChannelRepository
|
||||||
import kr.co.vividnext.sodalive.v2.creator.channel.donation.CreatorChannelDonationViewModel
|
import kr.co.vividnext.sodalive.v2.creator.channel.donation.CreatorChannelDonationViewModel
|
||||||
@@ -453,6 +455,8 @@ class AppDI(private val context: Context, isDebugMode: Boolean) {
|
|||||||
viewModel { CreatorChannelAudioViewModel(get()) }
|
viewModel { CreatorChannelAudioViewModel(get()) }
|
||||||
viewModel { CreatorChannelSeriesViewModel(get()) }
|
viewModel { CreatorChannelSeriesViewModel(get()) }
|
||||||
viewModel { CreatorChannelCommunityViewModel(get(), get()) }
|
viewModel { CreatorChannelCommunityViewModel(get(), get()) }
|
||||||
|
viewModel { CreatorChannelCommunityDetailViewModel(get(), get(), get()) }
|
||||||
|
viewModel { CreatorChannelCommunityReplyViewModel(get(), get(), get()) }
|
||||||
viewModel { CreatorChannelFanTalkViewModel(get(), get()) }
|
viewModel { CreatorChannelFanTalkViewModel(get(), get()) }
|
||||||
viewModel { CreatorChannelFanTalkWriteViewModel(get()) }
|
viewModel { CreatorChannelFanTalkWriteViewModel(get()) }
|
||||||
viewModel { CreatorChannelDonationViewModel(get(), get()) }
|
viewModel { CreatorChannelDonationViewModel(get(), get()) }
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ import kr.co.vividnext.sodalive.v2.components.modal.V2ModalDialog
|
|||||||
import kr.co.vividnext.sodalive.v2.common.CreatorActivityType
|
import kr.co.vividnext.sodalive.v2.common.CreatorActivityType
|
||||||
import kr.co.vividnext.sodalive.v2.creator.channel.audio.CreatorChannelAudioFragment
|
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.community.CreatorChannelCommunityFragment
|
||||||
|
import kr.co.vividnext.sodalive.v2.creator.channel.community.detail.CreatorChannelCommunityDetailActivity
|
||||||
import kr.co.vividnext.sodalive.v2.creator.channel.community.model.CreatorChannelCommunityPostUiModel
|
import kr.co.vividnext.sodalive.v2.creator.channel.community.model.CreatorChannelCommunityPostUiModel
|
||||||
import kr.co.vividnext.sodalive.v2.creator.channel.data.CreatorChannelAudioContentResponse
|
import kr.co.vividnext.sodalive.v2.creator.channel.data.CreatorChannelAudioContentResponse
|
||||||
import kr.co.vividnext.sodalive.v2.creator.channel.data.CreatorChannelLiveResponse
|
import kr.co.vividnext.sodalive.v2.creator.channel.data.CreatorChannelLiveResponse
|
||||||
@@ -129,6 +130,13 @@ class CreatorChannelActivity :
|
|||||||
refreshCreatorChannelCommunity()
|
refreshCreatorChannelCommunity()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private val communityDetailLauncher = registerForActivityResult(
|
||||||
|
ActivityResultContracts.StartActivityForResult()
|
||||||
|
) { result ->
|
||||||
|
if (result.resultCode == RESULT_OK) {
|
||||||
|
refreshCreatorChannelCommunity()
|
||||||
|
}
|
||||||
|
}
|
||||||
private val fanTalkWriteLauncher = registerForActivityResult(
|
private val fanTalkWriteLauncher = registerForActivityResult(
|
||||||
ActivityResultContracts.StartActivityForResult()
|
ActivityResultContracts.StartActivityForResult()
|
||||||
) { result ->
|
) { result ->
|
||||||
@@ -568,6 +576,16 @@ class CreatorChannelActivity :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onCreatorChannelCommunityPostClicked(postId: Long) {
|
||||||
|
if (postId <= 0L) return
|
||||||
|
if (SharedPreferenceManager.token.isBlank()) {
|
||||||
|
showLoginActivity()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
communityDetailLauncher.launch(CreatorChannelCommunityDetailActivity.newIntent(this, postId))
|
||||||
|
}
|
||||||
|
|
||||||
override fun onCreatorChannelFanTalkContentChanged() {
|
override fun onCreatorChannelFanTalkContentChanged() {
|
||||||
updateViewPagerHeight {
|
updateViewPagerHeight {
|
||||||
postCheckCreatorChannelCurrentTabNeedsMore()
|
postCheckCreatorChannelCurrentTabNeedsMore()
|
||||||
|
|||||||
@@ -28,11 +28,14 @@ class CreatorChannelCommunityFragment : BaseFragment<FragmentCreatorChannelCommu
|
|||||||
|
|
||||||
private val viewModel: CreatorChannelCommunityViewModel by viewModel()
|
private val viewModel: CreatorChannelCommunityViewModel by viewModel()
|
||||||
private val listAdapter = CreatorChannelCommunityListAdapter(
|
private val listAdapter = CreatorChannelCommunityListAdapter(
|
||||||
|
onPostClick = { item -> host.onCreatorChannelCommunityPostClicked(item.postId) },
|
||||||
onPlayClick = { item -> toggleCommunityAudio(item) },
|
onPlayClick = { item -> toggleCommunityAudio(item) },
|
||||||
onOwnerMoreClick = { item -> host.onCreatorChannelCommunityOwnerMoreClicked(item) },
|
onOwnerMoreClick = { item -> host.onCreatorChannelCommunityOwnerMoreClicked(item) },
|
||||||
isPlayingContent = { postId -> mediaPlayerManager?.isPlayingContent(postId) == true }
|
isPlayingContent = { postId -> mediaPlayerManager?.isPlayingContent(postId) == true }
|
||||||
)
|
)
|
||||||
private val gridAdapter = CreatorChannelCommunityGridAdapter()
|
private val gridAdapter = CreatorChannelCommunityGridAdapter(
|
||||||
|
onPostClick = { item -> host.onCreatorChannelCommunityPostClicked(item.postId) }
|
||||||
|
)
|
||||||
private var mediaPlayerManager: CreatorCommunityMediaPlayerManager? = null
|
private var mediaPlayerManager: CreatorCommunityMediaPlayerManager? = null
|
||||||
private var currentContentState: CreatorChannelCommunityUiState.Content? = null
|
private var currentContentState: CreatorChannelCommunityUiState.Content? = null
|
||||||
private var lastContentLayoutKey: CreatorChannelCommunityContentLayoutKey? = null
|
private var lastContentLayoutKey: CreatorChannelCommunityContentLayoutKey? = null
|
||||||
@@ -225,6 +228,7 @@ class CreatorChannelCommunityFragment : BaseFragment<FragmentCreatorChannelCommu
|
|||||||
interface Host {
|
interface Host {
|
||||||
fun isCreatorChannelOwner(): Boolean
|
fun isCreatorChannelOwner(): Boolean
|
||||||
fun onCreatorChannelCommunityContentChanged()
|
fun onCreatorChannelCommunityContentChanged()
|
||||||
|
fun onCreatorChannelCommunityPostClicked(postId: Long)
|
||||||
fun onCreatorChannelCommunityOwnerMoreClicked(item: CreatorChannelCommunityPostUiModel)
|
fun onCreatorChannelCommunityOwnerMoreClicked(item: CreatorChannelCommunityPostUiModel)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user