Loading app/src/main/java/foundation/e/apps/ui/MainActivity.kt +17 −14 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.os.Bundle import android.view.View import android.widget.Toast import android.window.OnBackInvokedDispatcher.PRIORITY_DEFAULT import androidx.activity.OnBackPressedCallback import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.Lifecycle import androidx.lifecycle.ViewModelProvider Loading Loading @@ -82,6 +83,20 @@ class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // Add an OnBackPressedCallback to handle the back press onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) { override fun handleOnBackPressed() { if (isInitialScreen()) { resetIgnoreStatusForSessionRefresh() finish() } else { // Let the system handle the back press isEnabled = false onBackPressedDispatcher.onBackPressed() } } }) binding = ActivityMainBinding.inflate(layoutInflater) setupBackPressHandlingForTiramisuAndAbove() Loading Loading @@ -148,19 +163,7 @@ class MainActivity : AppCompatActivity() { loginViewModel.startLoginFlow(listOf(PlayStoreAuthenticator::class.java.simpleName)) } // In Android 12 (API level 32) and lower, onBackPressed is always called, // regardless of any registered instances of OnBackPressedCallback. // https://developer.android.com/guide/navigation/navigation-custom-back#onbackpressed @Deprecated("Deprecated in Java") override fun onBackPressed() { if (isInitialScreen()) { resetIgnoreStatusForSessionRefresh() finish() } super.onBackPressed() } private fun isInitialScreen(): Boolean { fun isInitialScreen(): Boolean { val navHostFragment = supportFragmentManager.findFragmentById(R.id.fragment) as NavHostFragment Loading @@ -169,7 +172,7 @@ class MainActivity : AppCompatActivity() { return navController.currentDestination?.id == navController.graph.startDestinationId } private fun resetIgnoreStatusForSessionRefresh() { fun resetIgnoreStatusForSessionRefresh() { viewModel.shouldIgnoreSessionError = false } Loading Loading
app/src/main/java/foundation/e/apps/ui/MainActivity.kt +17 −14 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.os.Bundle import android.view.View import android.widget.Toast import android.window.OnBackInvokedDispatcher.PRIORITY_DEFAULT import androidx.activity.OnBackPressedCallback import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.Lifecycle import androidx.lifecycle.ViewModelProvider Loading Loading @@ -82,6 +83,20 @@ class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // Add an OnBackPressedCallback to handle the back press onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) { override fun handleOnBackPressed() { if (isInitialScreen()) { resetIgnoreStatusForSessionRefresh() finish() } else { // Let the system handle the back press isEnabled = false onBackPressedDispatcher.onBackPressed() } } }) binding = ActivityMainBinding.inflate(layoutInflater) setupBackPressHandlingForTiramisuAndAbove() Loading Loading @@ -148,19 +163,7 @@ class MainActivity : AppCompatActivity() { loginViewModel.startLoginFlow(listOf(PlayStoreAuthenticator::class.java.simpleName)) } // In Android 12 (API level 32) and lower, onBackPressed is always called, // regardless of any registered instances of OnBackPressedCallback. // https://developer.android.com/guide/navigation/navigation-custom-back#onbackpressed @Deprecated("Deprecated in Java") override fun onBackPressed() { if (isInitialScreen()) { resetIgnoreStatusForSessionRefresh() finish() } super.onBackPressed() } private fun isInitialScreen(): Boolean { fun isInitialScreen(): Boolean { val navHostFragment = supportFragmentManager.findFragmentById(R.id.fragment) as NavHostFragment Loading @@ -169,7 +172,7 @@ class MainActivity : AppCompatActivity() { return navController.currentDestination?.id == navController.graph.startDestinationId } private fun resetIgnoreStatusForSessionRefresh() { fun resetIgnoreStatusForSessionRefresh() { viewModel.shouldIgnoreSessionError = false } Loading