diff --git a/app/src/main/java/org/mozilla/fenix/settings/AccountProblemFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/AccountProblemFragment.kt index 59ad22be0..b80b18433 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/AccountProblemFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/AccountProblemFragment.kt @@ -10,6 +10,7 @@ import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.findNavController import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat +import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import mozilla.components.concept.sync.AccountObserver import mozilla.components.concept.sync.AuthType @@ -45,14 +46,13 @@ class AccountProblemFragment : PreferenceFragmentCompat(), AccountObserver { (activity as AppCompatActivity).supportActionBar?.show() val accountManager = requireComponents.backgroundServices.accountManager + accountManager.register(this, owner = this) // We may have fixed our auth problem, in which case close this fragment. if (accountManager.authenticatedAccount() != null && !accountManager.accountNeedsReauth()) { findNavController().popBackStack() return } - - accountManager.register(this, owner = this) } override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { @@ -73,8 +73,9 @@ class AccountProblemFragment : PreferenceFragmentCompat(), AccountObserver { override fun onLoggedOut() = closeFragment() private fun closeFragment() { - lifecycleScope.launch { - findNavController().popBackStack() + lifecycleScope.launch(Dispatchers.Main) { + findNavController() + .popBackStack(R.id.accountProblemFragment, true) } } }