feat(ui): 채팅 탭 추가
This commit is contained in:
@@ -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() {
|
||||||
|
// 채팅 화면 초기화 로직
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
5
app/src/main/res/drawable/ic_tabbar_chat.xml
Normal file
5
app/src/main/res/drawable/ic_tabbar_chat.xml
Normal 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>
|
||||||
@@ -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"
|
||||||
|
|||||||
19
app/src/main/res/layout/fragment_chat.xml
Normal file
19
app/src/main/res/layout/fragment_chat.xml
Normal 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>
|
||||||
Reference in New Issue
Block a user