fix(main): 대화 탭 로그인 가드를 적용한다

This commit is contained in:
2026-06-27 04:47:57 +09:00
parent 0679dc7deb
commit 0454980fae
2 changed files with 70 additions and 9 deletions

View File

@@ -147,12 +147,12 @@ class MainV2Activity : BaseActivity<ActivityMainV2Binding>(ActivityMainV2Binding
setupBottomNavigation()
if (intent.hasExtra(EXTRA_CHAT_FILTER)) {
viewModel.clickTab(MainV2Tab.CHAT)
selectChatTabWithLoginGuard()
}
}
fun showLoginActivity() {
if (SharedPreferenceManager.token.isBlank()) {
if (!isLoggedIn()) {
val extras = intent.extras
startActivity(
Intent(applicationContext, LoginActivity::class.java).apply {
@@ -165,7 +165,7 @@ class MainV2Activity : BaseActivity<ActivityMainV2Binding>(ActivityMainV2Binding
}
fun openChatTab() {
viewModel.clickTab(MainV2Tab.CHAT)
selectChatTabWithLoginGuard()
}
private fun consumeInitialChatFilter(): ChatRoomFilter? {
@@ -182,18 +182,27 @@ class MainV2Activity : BaseActivity<ActivityMainV2Binding>(ActivityMainV2Binding
return
}
viewModel.clickTab(MainV2Tab.CHAT)
selectChatTabWithLoginGuard()
}
private fun setupBottomNavigation() {
binding.bottomNavigation.setOnItemSelectedListener { item ->
when (item.itemId) {
R.id.menu_main_v2_home -> viewModel.clickTab(MainV2Tab.HOME)
R.id.menu_main_v2_content -> viewModel.clickTab(MainV2Tab.CONTENT)
R.id.menu_main_v2_chat -> viewModel.clickTab(MainV2Tab.CHAT)
R.id.menu_main_v2_my -> viewModel.clickTab(MainV2Tab.MY)
R.id.menu_main_v2_home -> {
viewModel.clickTab(MainV2Tab.HOME)
true
}
R.id.menu_main_v2_content -> {
viewModel.clickTab(MainV2Tab.CONTENT)
true
}
R.id.menu_main_v2_chat -> selectChatTabWithLoginGuard()
R.id.menu_main_v2_my -> {
viewModel.clickTab(MainV2Tab.MY)
true
}
else -> false
}
true
}
binding.bottomNavigation.apply {
@@ -247,6 +256,16 @@ class MainV2Activity : BaseActivity<ActivityMainV2Binding>(ActivityMainV2Binding
fragmentTransaction.commitNow()
}
private fun selectChatTabWithLoginGuard(): Boolean {
if (!isLoggedIn()) {
showLoginActivity()
return false
}
viewModel.clickTab(MainV2Tab.CHAT)
return true
}
private fun observePlayerState() {
playerStateJob = lifecycleScope.launch {
repeatOnLifecycle(Lifecycle.State.STARTED) {