feat(home): 온에어 라이브 더보기를 연결한다

This commit is contained in:
2026-06-27 01:10:34 +09:00
parent ee2f5572fc
commit 7c775efada
2 changed files with 14 additions and 3 deletions

View File

@@ -16,6 +16,7 @@ import kr.co.vividnext.sodalive.databinding.ViewSectionTitleBinding
import kr.co.vividnext.sodalive.explorer.profile.creator_community.all.CreatorCommunityAllActivity import kr.co.vividnext.sodalive.explorer.profile.creator_community.all.CreatorCommunityAllActivity
import kr.co.vividnext.sodalive.chat.talk.room.ChatRoomActivity import kr.co.vividnext.sodalive.chat.talk.room.ChatRoomActivity
import kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelActivity import kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelActivity
import kr.co.vividnext.sodalive.v2.live.onair.HomeOnAirLiveActivity
import kr.co.vividnext.sodalive.v2.main.chat.dm.DmChatRoomActivity import kr.co.vividnext.sodalive.v2.main.chat.dm.DmChatRoomActivity
import kr.co.vividnext.sodalive.v2.main.chat.model.ChatRoomListUiItem import kr.co.vividnext.sodalive.v2.main.chat.model.ChatRoomListUiItem
import kr.co.vividnext.sodalive.v2.main.chat.model.ChatRoomType import kr.co.vividnext.sodalive.v2.main.chat.model.ChatRoomType
@@ -154,6 +155,7 @@ class HomeMainFragment : BaseFragment<FragmentV2MainHomeBinding>(
setOnBannerClick { onBannerClick(it) } setOnBannerClick { onBannerClick(it) }
} }
liveAdapter.setOnLiveClick { onLiveClick(it) } liveAdapter.setOnLiveClick { onLiveClick(it) }
liveAdapter.setOnMoreClick { openHomeOnAirLive() }
binding.rvHomeLives.adapter = liveAdapter binding.rvHomeLives.adapter = liveAdapter
binding.rvHomeRecentActivityCreators.adapter = recentActivityCreatorAdapter binding.rvHomeRecentActivityCreators.adapter = recentActivityCreatorAdapter
binding.rvHomeRecentDebutCreators.adapter = recentDebutCreatorAdapter binding.rvHomeRecentDebutCreators.adapter = recentDebutCreatorAdapter
@@ -484,6 +486,10 @@ class HomeMainFragment : BaseFragment<FragmentV2MainHomeBinding>(
private fun onLiveClick(item: HomeRecommendationLiveUiModel) = Unit private fun onLiveClick(item: HomeRecommendationLiveUiModel) = Unit
private fun openHomeOnAirLive() {
startActivity(HomeOnAirLiveActivity.newIntent(requireContext()))
}
private fun onFollowingSectionMoreClick(section: HomeFollowingSection) = Unit private fun onFollowingSectionMoreClick(section: HomeFollowingSection) = Unit
private fun onFollowingLiveClick(item: HomeFollowingLiveUiItem) = Unit private fun onFollowingLiveClick(item: HomeFollowingLiveUiItem) = Unit

View File

@@ -16,6 +16,7 @@ class HomeLiveAdapter : RecyclerView.Adapter<HomeLiveAdapter.LiveViewHolder>() {
private var items: List<HomeRecommendationLiveUiModel> = emptyList() private var items: List<HomeRecommendationLiveUiModel> = emptyList()
private var hasMore: Boolean = false private var hasMore: Boolean = false
private var onClick: ((HomeRecommendationLiveUiModel) -> Unit)? = null private var onClick: ((HomeRecommendationLiveUiModel) -> Unit)? = null
private var onMoreClick: (() -> Unit)? = null
fun submitItems(items: List<HomeRecommendationLiveUiModel>) { fun submitItems(items: List<HomeRecommendationLiveUiModel>) {
this.items = items.take(MAX_VISIBLE_LIVE_COUNT) this.items = items.take(MAX_VISIBLE_LIVE_COUNT)
@@ -27,6 +28,10 @@ class HomeLiveAdapter : RecyclerView.Adapter<HomeLiveAdapter.LiveViewHolder>() {
onClick = listener onClick = listener
} }
fun setOnMoreClick(listener: (() -> Unit)?) {
onMoreClick = listener
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): LiveViewHolder { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): LiveViewHolder {
return if (viewType == VIEW_TYPE_MORE) { return if (viewType == VIEW_TYPE_MORE) {
MoreViewHolder(createMoreView(parent)) MoreViewHolder(createMoreView(parent))
@@ -40,7 +45,7 @@ class HomeLiveAdapter : RecyclerView.Adapter<HomeLiveAdapter.LiveViewHolder>() {
override fun onBindViewHolder(holder: LiveViewHolder, position: Int) { override fun onBindViewHolder(holder: LiveViewHolder, position: Int) {
when (holder) { when (holder) {
is LiveItemViewHolder -> holder.bind(items[position], onClick) is LiveItemViewHolder -> holder.bind(items[position], onClick)
is MoreViewHolder -> holder.bind() is MoreViewHolder -> holder.bind(onMoreClick)
} }
} }
@@ -97,8 +102,8 @@ class HomeLiveAdapter : RecyclerView.Adapter<HomeLiveAdapter.LiveViewHolder>() {
class MoreViewHolder( class MoreViewHolder(
private val view: TextView private val view: TextView
) : LiveViewHolder(view) { ) : LiveViewHolder(view) {
fun bind() { fun bind(onClick: (() -> Unit)?) {
view.setOnClickListener(null) view.setOnClickListener(if (onClick == null) null else View.OnClickListener { onClick.invoke() })
} }
} }