diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ba32e368..82f7bf95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -114,6 +114,12 @@ + + diff --git a/app/src/main/java/kr/co/vividnext/sodalive/di/AppDI.kt b/app/src/main/java/kr/co/vividnext/sodalive/di/AppDI.kt index 811be663..f2f2ae6d 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/di/AppDI.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/di/AppDI.kt @@ -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.audio.CreatorChannelAudioViewModel 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.CreatorChannelRepository 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 { CreatorChannelSeriesViewModel(get()) } viewModel { CreatorChannelCommunityViewModel(get(), get()) } + viewModel { CreatorChannelCommunityDetailViewModel(get(), get(), get()) } + viewModel { CreatorChannelCommunityReplyViewModel(get(), get(), get()) } viewModel { CreatorChannelFanTalkViewModel(get(), get()) } viewModel { CreatorChannelFanTalkWriteViewModel(get()) } viewModel { CreatorChannelDonationViewModel(get(), get()) } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivity.kt index 52d33bf7..70432663 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivity.kt @@ -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.creator.channel.audio.CreatorChannelAudioFragment 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.data.CreatorChannelAudioContentResponse import kr.co.vividnext.sodalive.v2.creator.channel.data.CreatorChannelLiveResponse @@ -129,6 +130,13 @@ class CreatorChannelActivity : refreshCreatorChannelCommunity() } } + private val communityDetailLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { result -> + if (result.resultCode == RESULT_OK) { + refreshCreatorChannelCommunity() + } + } private val fanTalkWriteLauncher = registerForActivityResult( ActivityResultContracts.StartActivityForResult() ) { 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() { updateViewPagerHeight { postCheckCreatorChannelCurrentTabNeedsMore() diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/community/CreatorChannelCommunityFragment.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/community/CreatorChannelCommunityFragment.kt index a91aecdb..f9bb7bc7 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/community/CreatorChannelCommunityFragment.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/community/CreatorChannelCommunityFragment.kt @@ -28,11 +28,14 @@ class CreatorChannelCommunityFragment : BaseFragment host.onCreatorChannelCommunityPostClicked(item.postId) }, onPlayClick = { item -> toggleCommunityAudio(item) }, onOwnerMoreClick = { item -> host.onCreatorChannelCommunityOwnerMoreClicked(item) }, 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 currentContentState: CreatorChannelCommunityUiState.Content? = null private var lastContentLayoutKey: CreatorChannelCommunityContentLayoutKey? = null @@ -225,6 +228,7 @@ class CreatorChannelCommunityFragment : BaseFragment