1
0
Fork 0

For #5258 - Pop AccountProblemFragment if signed out

master
Emily Kager 2019-09-16 14:17:01 -07:00 committed by Emily Kager
parent 8a9340fd9d
commit 2b71af4087
1 changed files with 5 additions and 4 deletions

View File

@ -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)
}
}
}