feat(ui): 채팅 탭 추가

This commit is contained in:
2025-08-01 14:47:51 +09:00
parent f6e7229246
commit 3cf57c1f91
6 changed files with 71 additions and 1 deletions

View File

@@ -0,0 +1,18 @@
package kr.co.vividnext.sodalive.chat
import android.os.Bundle
import android.view.View
import kr.co.vividnext.sodalive.base.BaseFragment
import kr.co.vividnext.sodalive.databinding.FragmentChatBinding
class ChatFragment : BaseFragment<FragmentChatBinding>(FragmentChatBinding::inflate) {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initView()
}
private fun initView() {
// 채팅 화면 초기화 로직
}
}

View File

@@ -35,6 +35,7 @@ import kr.co.vividnext.sodalive.audio_content.player.AudioContentPlayerFragment
import kr.co.vividnext.sodalive.audio_content.player.AudioContentPlayerService import kr.co.vividnext.sodalive.audio_content.player.AudioContentPlayerService
import kr.co.vividnext.sodalive.audio_content.series.detail.SeriesDetailActivity import kr.co.vividnext.sodalive.audio_content.series.detail.SeriesDetailActivity
import kr.co.vividnext.sodalive.base.BaseActivity import kr.co.vividnext.sodalive.base.BaseActivity
import kr.co.vividnext.sodalive.chat.ChatFragment
import kr.co.vividnext.sodalive.common.Constants import kr.co.vividnext.sodalive.common.Constants
import kr.co.vividnext.sodalive.common.LoadingDialog import kr.co.vividnext.sodalive.common.LoadingDialog
import kr.co.vividnext.sodalive.common.SharedPreferenceManager import kr.co.vividnext.sodalive.common.SharedPreferenceManager
@@ -385,6 +386,17 @@ class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::infl
tab = MainViewModel.CurrentTab.HOME tab = MainViewModel.CurrentTab.HOME
) )
setupTab(
binding = binding.tabChat,
title = "채팅",
imageSrc = R.drawable.ic_tabbar_chat,
colorStateList = ContextCompat.getColorStateList(
applicationContext,
R.color.color_tabbar_title
),
tab = MainViewModel.CurrentTab.CHAT
)
setupTab( setupTab(
binding = binding.tabLive, binding = binding.tabLive,
title = "라이브", title = "라이브",
@@ -409,6 +421,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::infl
viewModel.currentTab.observe(this) { viewModel.currentTab.observe(this) {
setTabSelected(binding.tabHome, isSelected = false) setTabSelected(binding.tabHome, isSelected = false)
setTabSelected(binding.tabChat, isSelected = false)
setTabSelected(binding.tabLive, isSelected = false) setTabSelected(binding.tabLive, isSelected = false)
setTabSelected(binding.tabMy, isSelected = false) setTabSelected(binding.tabMy, isSelected = false)
@@ -418,6 +431,10 @@ class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::infl
setTabSelected(binding.tabHome, isSelected = true) setTabSelected(binding.tabHome, isSelected = true)
} }
MainViewModel.CurrentTab.CHAT -> {
setTabSelected(binding.tabChat, isSelected = true)
}
MainViewModel.CurrentTab.LIVE -> { MainViewModel.CurrentTab.LIVE -> {
setTabSelected(binding.tabLive, isSelected = true) setTabSelected(binding.tabLive, isSelected = true)
} }
@@ -474,6 +491,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::infl
MainViewModel.CurrentTab.LIVE -> liveFragment MainViewModel.CurrentTab.LIVE -> liveFragment
MainViewModel.CurrentTab.HOME -> HomeFragment() MainViewModel.CurrentTab.HOME -> HomeFragment()
MainViewModel.CurrentTab.MY -> MyPageFragment() MainViewModel.CurrentTab.MY -> MyPageFragment()
MainViewModel.CurrentTab.CHAT -> ChatFragment()
} }
fragmentTransaction.add(R.id.fl_container, fragment, tag) fragmentTransaction.add(R.id.fl_container, fragment, tag)

View File

@@ -40,7 +40,10 @@ class MainViewModel(
LIVE, LIVE,
@SerializedName("MY") @SerializedName("MY")
MY MY,
@SerializedName("CHAT")
CHAT
} }
private val _currentTab = MutableLiveData(CurrentTab.HOME) private val _currentTab = MutableLiveData(CurrentTab.HOME)

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_chat" android:state_selected="false" />
<item android:drawable="@drawable/ic_chat_selected" android:state_selected="true" />
</selector>

View File

@@ -169,6 +169,13 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" /> android:layout_weight="1" />
<include
android:id="@+id/tab_chat"
layout="@layout/item_main_tab"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<include <include
android:id="@+id/tab_live" android:id="@+id/tab_live"
layout="@layout/item_main_tab" layout="@layout/item_main_tab"

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="채팅"
android:textColor="@color/white"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>