summaryrefslogtreecommitdiffhomepage
path: root/android/app/src
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2022-06-15 14:57:46 +0200
committerAlbin <albin@mullvad.net>2022-06-22 11:57:30 +0200
commit334b10b32725083a8816ebb57971eabe73836031 (patch)
treeb45e6009da16418458e0903f5d029f6ded46cfe7 /android/app/src
parent974facc7794cb4631f446acd36f28436ce1e0d45 (diff)
downloadmullvadvpn-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.kt30
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt10
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