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