This commit is contained in:
pengxiaolong
2025-12-26 22:01:04 +08:00
parent 79b5bc0273
commit 7814a10815
108 changed files with 6538 additions and 1987 deletions

View File

@@ -3,11 +3,16 @@ package com.example.myapplication
import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.ui.setupWithNavController
import com.google.android.material.bottomnavigation.BottomNavigationView
import androidx.navigation.NavController
import androidx.navigation.NavDestination
import com.example.myapplication.network.AuthEventBus
import com.example.myapplication.network.AuthEvent
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch
class MainActivity : AppCompatActivity() {
@@ -18,6 +23,23 @@ class MainActivity : AppCompatActivity() {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
lifecycleScope.launch {
AuthEventBus.events.collectLatest { event ->
if (event is AuthEvent.TokenExpired) {
val navController = (supportFragmentManager
.findFragmentById(R.id.nav_host_fragment) as NavHostFragment)
.navController
// 避免重复跳转(比如已经在登录页)
if (navController.currentDestination?.id != R.id.loginFragment) {
navController.navigate(R.id.action_global_loginFragment)
}
} else if (event is AuthEvent.GenericError) {
android.widget.Toast.makeText(this@MainActivity, "${event.message}", android.widget.Toast.LENGTH_SHORT).show()
}
}
}
// 1. 找到 NavHostFragment
val navHostFragment =
supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment