fix(main): 콘텐츠와 대화 title bar 이동을 연결한다

This commit is contained in:
2026-06-30 16:12:16 +09:00
parent d1a0cf27a7
commit 3c66ea986f
4 changed files with 104 additions and 10 deletions

View File

@@ -1,5 +1,6 @@
package kr.co.vividnext.sodalive.v2.main.chat
import android.content.Intent
import android.os.Bundle
import android.view.View
import android.widget.ImageView
@@ -12,6 +13,9 @@ import kr.co.vividnext.sodalive.base.BaseFragment
import kr.co.vividnext.sodalive.chat.talk.room.ChatRoomActivity
import kr.co.vividnext.sodalive.common.LoadingDialog
import kr.co.vividnext.sodalive.databinding.FragmentV2MainChatBinding
import kr.co.vividnext.sodalive.mypage.can.charge.CanChargeActivity
import kr.co.vividnext.sodalive.search.SearchActivity
import kr.co.vividnext.sodalive.v2.main.ensureMainV2NavigationAllowed
import kr.co.vividnext.sodalive.v2.main.chat.dm.DmChatRoomActivity
import kr.co.vividnext.sodalive.v2.main.chat.model.ChatRoomFilter
import kr.co.vividnext.sodalive.v2.main.chat.model.ChatRoomListUiItem
@@ -63,17 +67,29 @@ class ChatMainFragment : BaseFragment<FragmentV2MainChatBinding>(
private fun setupTitleBar() {
binding.viewChatTitleBar.tvTitleBarTitle.setText(R.string.tab_chat)
binding.viewChatTitleBar.ivTitleBarMenu.setImageResource(R.drawable.ic_bar_cash)
binding.viewChatTitleBar.llTitleBarActions.addView(
ImageView(requireContext()).apply {
setImageResource(R.drawable.ic_bar_search)
layoutParams = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT
).apply {
marginStart = resources.getDimensionPixelSize(R.dimen.spacing_14)
}
binding.viewChatTitleBar.ivTitleBarMenu.setOnClickListener {
openWithLoginGuard(CanChargeActivity::class.java)
}
val searchAction = ImageView(requireContext()).apply {
setImageResource(R.drawable.ic_bar_search)
layoutParams = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT
).apply {
marginStart = resources.getDimensionPixelSize(R.dimen.spacing_14)
}
)
}
searchAction.setOnClickListener {
openWithLoginGuard(SearchActivity::class.java)
}
binding.viewChatTitleBar.llTitleBarActions.addView(searchAction)
}
private fun openWithLoginGuard(activityClass: Class<*>) {
ensureMainV2NavigationAllowed {
startActivity(Intent(requireContext(), activityClass))
}
}
private fun setupFilterTabs(initialFilter: ChatRoomFilter) {

View File

@@ -13,6 +13,7 @@ import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.audio_content.box.AudioContentBoxActivity
import kr.co.vividnext.sodalive.audio_content.detail.AudioContentDetailActivity
import kr.co.vividnext.sodalive.audio_content.series.detail.SeriesDetailActivity
import kr.co.vividnext.sodalive.base.BaseFragment
@@ -23,6 +24,8 @@ import kr.co.vividnext.sodalive.databinding.FragmentV2MainContentBinding
import kr.co.vividnext.sodalive.databinding.ViewSectionTitleBinding
import kr.co.vividnext.sodalive.extensions.moneyFormat
import kr.co.vividnext.sodalive.home.SeriesPublishedDaysOfWeek
import kr.co.vividnext.sodalive.mypage.can.charge.CanChargeActivity
import kr.co.vividnext.sodalive.search.SearchActivity
import kr.co.vividnext.sodalive.v2.common.data.ContentSort
import kr.co.vividnext.sodalive.v2.creator.channel.model.toLabelResId
import kr.co.vividnext.sodalive.v2.creator.channel.ui.CreatorChannelSortPopup
@@ -113,6 +116,7 @@ class ContentMainFragment : BaseFragment<FragmentV2MainContentBinding>(
setUpAllTypeTabs()
setUpAllDayFilter()
setUpAllSortButton()
setupTitleBarActions()
showContentTab(CONTENT_TAB_RECOMMENDATION)
setUpSectionTitles()
setUpAdapters()
@@ -129,6 +133,24 @@ class ContentMainFragment : BaseFragment<FragmentV2MainContentBinding>(
super.onDestroyView()
}
private fun setupTitleBarActions() {
binding.viewContentTitleBar.ivTitleBarCash.setOnClickListener {
openWithLoginGuard(CanChargeActivity::class.java)
}
binding.viewContentTitleBar.ivTitleBarSearch.setOnClickListener {
openWithLoginGuard(SearchActivity::class.java)
}
binding.viewContentTitleBar.ivTitleBarStorage.setOnClickListener {
openWithLoginGuard(AudioContentBoxActivity::class.java)
}
}
private fun openWithLoginGuard(activityClass: Class<*>) {
ensureMainV2NavigationAllowed {
startActivity(Intent(requireContext(), activityClass))
}
}
fun selectAllTab(type: MainContentAllType, sort: ContentSort = ContentSort.LATEST) {
pendingAllTabSelection = ContentAllTabSelection(type, sort)
if (view != null) {