|
@@ -6,6 +6,8 @@ import android.os.Build
|
|
|
import android.os.Bundle
|
|
|
import android.util.Log
|
|
|
import android.view.WindowManager
|
|
|
+import android.widget.Toast
|
|
|
+import androidx.activity.OnBackPressedCallback
|
|
|
import androidx.activity.compose.setContent
|
|
|
import androidx.compose.foundation.isSystemInDarkTheme
|
|
|
import androidx.compose.material3.MaterialTheme
|
|
@@ -29,6 +31,7 @@ import dagger.hilt.android.AndroidEntryPoint
|
|
|
import kotlinx.coroutines.CoroutineScope
|
|
|
import kotlinx.coroutines.MainScope
|
|
|
import kotlinx.coroutines.cancel
|
|
|
+import kotlinx.coroutines.delay
|
|
|
import kotlinx.coroutines.flow.collect
|
|
|
import kotlinx.coroutines.launch
|
|
|
import java.util.concurrent.CompletableFuture
|
|
@@ -43,7 +46,7 @@ private val DarkBackgroundTheme = BackgroundTheme(color = Color.Black)
|
|
|
@AndroidEntryPoint
|
|
|
class MainActivity : FragmentActivity(), ITokenRequest, CoroutineScope by MainScope() {
|
|
|
companion object {
|
|
|
- private val tokenFlag = 99
|
|
|
+ private const val tokenFlag = 99
|
|
|
private val requests = ConcurrentHashMap<Int, CompletableFuture<TokenModel?>>()
|
|
|
private val nextRequestCode = AtomicInteger(0)
|
|
|
}
|
|
@@ -53,12 +56,31 @@ class MainActivity : FragmentActivity(), ITokenRequest, CoroutineScope by MainSc
|
|
|
@Inject
|
|
|
public lateinit var authRepository: AuthRepository
|
|
|
|
|
|
+ private val onBackPressedCallback = object : OnBackPressedCallback(true) {
|
|
|
+ private var lastTimeMillis: Long = 0L
|
|
|
+
|
|
|
+ override fun handleOnBackPressed() {
|
|
|
+ val currentTimeMillis = System.currentTimeMillis()
|
|
|
+
|
|
|
+ if (currentTimeMillis - lastTimeMillis > 2000) {
|
|
|
+ Toast.makeText(this@MainActivity, "再次点击退出应用", Toast.LENGTH_SHORT).show()
|
|
|
+ launch {
|
|
|
+ isEnabled = false
|
|
|
+ delay(2000)
|
|
|
+ lastTimeMillis = currentTimeMillis
|
|
|
+ isEnabled = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
|
AuthUtils.attach(this)
|
|
|
super.onCreate(savedInstanceState)
|
|
|
configureSystemBar()
|
|
|
|
|
|
getSystemService(BatteryManager::class.java)
|
|
|
+ onBackPressedDispatcher.addCallback(this, onBackPressedCallback)
|
|
|
|
|
|
launch {
|
|
|
authRepository.state.collect {
|