diff --git a/mailbox-android/src/main/java/org/briarproject/mailbox/android/ui/MainActivity.kt b/mailbox-android/src/main/java/org/briarproject/mailbox/android/ui/MainActivity.kt index b42ca4c581a615e069aec7ea312c2fdd3d654e9a..f126a9aabf17a19f1bfa19240b7aa96a85e38d30 100644 --- a/mailbox-android/src/main/java/org/briarproject/mailbox/android/ui/MainActivity.kt +++ b/mailbox-android/src/main/java/org/briarproject/mailbox/android/ui/MainActivity.kt @@ -88,9 +88,10 @@ class MainActivity : AppCompatActivity(), ActivityResultCallback<ActivityResult> setContentView(R.layout.activity_main) viewModel.doNotKillComplete.observe(this) { complete -> - if (complete && nav.currentDestination?.id == R.id.doNotKillMeFragment) nav.navigate( - actionGlobalStartupFragment() - ) + if (complete && nav.currentDestination?.id == R.id.doNotKillMeFragment) { + LOG.info("navigating to startup fragment") + nav.navigate(actionGlobalStartupFragment()) + } } LOG.info { "do we have a saved instance state? " + (savedInstanceState != null) } @@ -120,24 +121,39 @@ class MainActivity : AppCompatActivity(), ActivityResultCallback<ActivityResult> private fun onAppStateChanged(state: MailboxAppState) { when (state) { NotStarted -> {} // do not navigate anywhere yet - is Starting -> if (nav.currentDestination?.id != R.id.startupFragment) + is Starting -> if (nav.currentDestination?.id != R.id.startupFragment) { + LOG.info("navigating to startup fragment") nav.navigate(actionGlobalStartupFragment()) - is StartedSettingUp -> if (nav.currentDestination?.id != R.id.qrCodeFragment) + } + is StartedSettingUp -> if (nav.currentDestination?.id != R.id.qrCodeFragment) { + LOG.info("navigating to qr fragment") nav.navigate(actionGlobalQrCodeFragment()) - StartedSetupComplete -> if (nav.currentDestination?.id == R.id.qrCodeFragment) + } + StartedSetupComplete -> if (nav.currentDestination?.id == R.id.qrCodeFragment) { + LOG.info("navigating to setup complete fragment") nav.navigate(actionGlobalSetupCompleteFragment()) - else if (nav.currentDestination?.id != R.id.statusFragment && + } else if (nav.currentDestination?.id != R.id.statusFragment && nav.currentDestination?.id != R.id.setupCompleteFragment - ) + ) { + LOG.info("navigating to status fragment") nav.navigate(actionGlobalStatusFragment()) - ErrorNoNetwork -> if (nav.currentDestination?.id != R.id.noNetworkFragment) + } + ErrorNoNetwork -> if (nav.currentDestination?.id != R.id.noNetworkFragment) { + LOG.info("navigating to no network fragment") nav.navigate(actionGlobalNoNetworkFragment()) - ErrorClockSkew -> if (nav.currentDestination?.id != R.id.clockSkewFragment) + } + ErrorClockSkew -> if (nav.currentDestination?.id != R.id.clockSkewFragment) { + LOG.info("navigating to clock skew fragment") nav.navigate(actionGlobalClockSkewFragment()) - Stopping -> if (nav.currentDestination?.id != R.id.stoppingFragment) + } + Stopping -> if (nav.currentDestination?.id != R.id.stoppingFragment) { + LOG.info("navigating to stopping fragment") nav.navigate(actionGlobalStoppingFragment()) - Wiping -> if (nav.currentDestination?.id != R.id.wipingFragment) + } + Wiping -> if (nav.currentDestination?.id != R.id.wipingFragment) { + LOG.info("navigating to wiping fragment") nav.navigate(actionGlobalWipingFragment()) + } Stopped -> {} // nothing to do but needs to be exhaustive for Kotlin 1.7 } } @@ -163,6 +179,7 @@ class MainActivity : AppCompatActivity(), ActivityResultCallback<ActivityResult> * In this case onSaveInstanceState() has written true to the bundle and this value * got restored to [hadBeenStartedOnSave]. */ if (hadBeenStartedOnSave && !hasDb) { + LOG.info("launching wipe complete activity") finish() startActivity(Intent(this, WipeCompleteActivity::class.java)) return @@ -173,14 +190,17 @@ class MainActivity : AppCompatActivity(), ActivityResultCallback<ActivityResult> // to do-not-keep activities option enabled), onDbChecked() gets called twice when // relaunched via app launcher (through onNewIntent()). if (!onboardingLaunched.getAndSet(true)) { + LOG.info("launching onboarding activity") startForResult.launch(Intent(this, OnboardingActivity::class.java)) } return } if (viewModel.needToShowDoNotKillMeFragment) { + LOG.info("navigating to do-not-kill fragment") nav.navigate(actionGlobalDoNotKillMeFragment()) } else { + LOG.info("navigating to startup fragment") nav.navigate(actionGlobalStartupFragment()) } } @@ -201,8 +221,10 @@ class MainActivity : AppCompatActivity(), ActivityResultCallback<ActivityResult> if (result.resultCode == RESULT_OK) { onboardingDone = true if (viewModel.needToShowDoNotKillMeFragment) { + LOG.info("navigating to do-not-kill fragment") nav.navigate(actionGlobalDoNotKillMeFragment()) } else { + LOG.info("navigating to startup fragment") nav.navigate(actionGlobalStartupFragment()) } } @@ -218,6 +240,7 @@ class MainActivity : AppCompatActivity(), ActivityResultCallback<ActivityResult> private fun showDozeDialog() = AlertDialog.Builder(this) .setMessage(R.string.warning_dozed) .setPositiveButton(R.string.fix) { dialog, _ -> + LOG.info("navigating to do-not-kill fragment") nav.navigate(actionGlobalDoNotKillMeFragment()) dialog.dismiss() }