From 7c775efadac6658a9b156f91428ee8d74790ec55 Mon Sep 17 00:00:00 2001 From: klaus Date: Sat, 27 Jun 2026 01:10:34 +0900 Subject: [PATCH] =?UTF-8?q?feat(home):=20=EC=98=A8=EC=97=90=EC=96=B4=20?= =?UTF-8?q?=EB=9D=BC=EC=9D=B4=EB=B8=8C=20=EB=8D=94=EB=B3=B4=EA=B8=B0?= =?UTF-8?q?=EB=A5=BC=20=EC=97=B0=EA=B2=B0=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sodalive/v2/main/home/HomeMainFragment.kt | 6 ++++++ .../sodalive/v2/main/home/ui/HomeLiveAdapter.kt | 11 ++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragment.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragment.kt index c9a6b223..aec8e926 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragment.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragment.kt @@ -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.chat.talk.room.ChatRoomActivity 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.model.ChatRoomListUiItem import kr.co.vividnext.sodalive.v2.main.chat.model.ChatRoomType @@ -154,6 +155,7 @@ class HomeMainFragment : BaseFragment( setOnBannerClick { onBannerClick(it) } } liveAdapter.setOnLiveClick { onLiveClick(it) } + liveAdapter.setOnMoreClick { openHomeOnAirLive() } binding.rvHomeLives.adapter = liveAdapter binding.rvHomeRecentActivityCreators.adapter = recentActivityCreatorAdapter binding.rvHomeRecentDebutCreators.adapter = recentDebutCreatorAdapter @@ -484,6 +486,10 @@ class HomeMainFragment : BaseFragment( private fun onLiveClick(item: HomeRecommendationLiveUiModel) = Unit + private fun openHomeOnAirLive() { + startActivity(HomeOnAirLiveActivity.newIntent(requireContext())) + } + private fun onFollowingSectionMoreClick(section: HomeFollowingSection) = Unit private fun onFollowingLiveClick(item: HomeFollowingLiveUiItem) = Unit diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/ui/HomeLiveAdapter.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/ui/HomeLiveAdapter.kt index 19fbd441..4d91883d 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/ui/HomeLiveAdapter.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/ui/HomeLiveAdapter.kt @@ -16,6 +16,7 @@ class HomeLiveAdapter : RecyclerView.Adapter() { private var items: List = emptyList() private var hasMore: Boolean = false private var onClick: ((HomeRecommendationLiveUiModel) -> Unit)? = null + private var onMoreClick: (() -> Unit)? = null fun submitItems(items: List) { this.items = items.take(MAX_VISIBLE_LIVE_COUNT) @@ -27,6 +28,10 @@ class HomeLiveAdapter : RecyclerView.Adapter() { onClick = listener } + fun setOnMoreClick(listener: (() -> Unit)?) { + onMoreClick = listener + } + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): LiveViewHolder { return if (viewType == VIEW_TYPE_MORE) { MoreViewHolder(createMoreView(parent)) @@ -40,7 +45,7 @@ class HomeLiveAdapter : RecyclerView.Adapter() { override fun onBindViewHolder(holder: LiveViewHolder, position: Int) { when (holder) { is LiveItemViewHolder -> holder.bind(items[position], onClick) - is MoreViewHolder -> holder.bind() + is MoreViewHolder -> holder.bind(onMoreClick) } } @@ -97,8 +102,8 @@ class HomeLiveAdapter : RecyclerView.Adapter() { class MoreViewHolder( private val view: TextView ) : LiveViewHolder(view) { - fun bind() { - view.setOnClickListener(null) + fun bind(onClick: (() -> Unit)?) { + view.setOnClickListener(if (onClick == null) null else View.OnClickListener { onClick.invoke() }) } }