diff options
| author | Albin <albin@mullvad.net> | 2022-06-15 14:57:46 +0200 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2022-06-22 11:57:30 +0200 |
| commit | 334b10b32725083a8816ebb57971eabe73836031 (patch) | |
| tree | b45e6009da16418458e0903f5d029f6ded46cfe7 /android/app/src | |
| parent | 974facc7794cb4631f446acd36f28436ce1e0d45 (diff) | |
| download | mullvadvpn-334b10b32725083a8816ebb57971eabe73836031.tar.xz mullvadvpn-334b10b32725083a8816ebb57971eabe73836031.zip | |
Rely on device state for logout
Prior to the device management, the only way to logout was via the
account view. However, since the logic for handling device revocation is
similar to device logout, it can now be handled more or less the same as
part of the device state listener in the activity. This means that the
account view only has to notify the daemon about the logout which will
trigger appropriate transitions.
Diffstat (limited to 'android/app/src')
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt | 30 | ||||
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt | 10 |
2 files changed, 11 insertions, 29 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt index 4b5fda7bbe..04e52ea518 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt @@ -4,7 +4,6 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import androidx.fragment.app.FragmentManager import androidx.lifecycle.Lifecycle import androidx.lifecycle.flowWithLifecycle import androidx.lifecycle.lifecycleScope @@ -90,7 +89,7 @@ class AccountFragment : ServiceDependentFragment(OnNoService.GoBack) { } view.findViewById<Button>(R.id.logout).setOnClickAction("logout", jobTracker) { - logout() + accountCache.logout() } accountNumberView = view.findViewById<CopyableInformationView>(R.id.account_number).apply { @@ -172,33 +171,6 @@ class AccountFragment : ServiceDependentFragment(OnNoService.GoBack) { RedeemVoucherDialogFragment().show(transaction, null) } - private suspend fun logout() { - accountCache.logout() - clearBackStack() - goToLoginScreen() - } - - private fun clearBackStack() { - parentFragmentManager.apply { - val firstEntry = getBackStackEntryAt(0) - - popBackStack(firstEntry.id, FragmentManager.POP_BACK_STACK_INCLUSIVE) - } - } - - private fun goToLoginScreen() { - parentFragmentManager.beginTransaction().apply { - setCustomAnimations( - R.anim.do_nothing, - R.anim.fragment_exit_to_bottom, - R.anim.do_nothing, - R.anim.do_nothing - ) - replace(R.id.main_fragment, LoginFragment()) - commit() - } - } - private fun addSpacesToAccountNumber(rawAccountNumber: String): String { return rawAccountNumber .asSequence() diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt index 204635a161..c5efb3e984 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt @@ -203,6 +203,7 @@ open class MainActivity : FragmentActivity() { } private fun openLoginView() { + clearBackStack() supportFragmentManager.beginTransaction().apply { replace(R.id.main_fragment, LoginFragment()) commit() @@ -222,6 +223,15 @@ open class MainActivity : FragmentActivity() { } } + fun clearBackStack() { + supportFragmentManager.apply { + if (backStackEntryCount > 0) { + val firstEntry = getBackStackEntryAt(0) + popBackStack(firstEntry.id, FragmentManager.POP_BACK_STACK_INCLUSIVE) + } + } + } + companion object { private const val ZERO_DEBOUNCE_DELAY_MILLISECONDS = 0L private const val UNKNOWN_STATE_DEBOUNCE_DELAY_MILLISECONDS = 2000L |
