summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-11-27 10:48:00 -0300
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-11-27 10:48:00 -0300
commite8657063e1c33907959a54094b11d670409c61f6 (patch)
tree59dba036899b60e21c63eb8a981427b633dd0941 /android/src
parent703e592924286b9ce4b590771c031173c0b2d9f7 (diff)
parent810bd90bcbc82338e212779f264d8ce3ccd7b41c (diff)
downloadmullvadvpn-e8657063e1c33907959a54094b11d670409c61f6.tar.xz
mullvadvpn-e8657063e1c33907959a54094b11d670409c61f6.zip
Merge branch 'advance-screen-if-already-logged-in'
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt26
1 files changed, 21 insertions, 5 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt
index c84961fc53..9ec172bf81 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt
@@ -68,6 +68,18 @@ class LoginFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) {
}
override fun onSafelyStart() {
+ jobTracker.newBackgroundJob("checkIfAlreadyLoggedIn") {
+ if (accountCache.onAccountNumberChange.latestEvent != null) {
+ val loginResult = if (accountCache.newlyCreatedAccount) {
+ LoginResult.NewAccount
+ } else {
+ loginResultForExpiry(accountCache.onAccountExpiryChange.latestEvent)
+ }
+
+ loggedIn.complete(loginResult)
+ }
+ }
+
jobTracker.newUiJob("advanceToNextScreen") {
when (loggedIn.await()) {
LoginResult.ExistingAccountWithTime -> openNextScreen(ConnectFragment())
@@ -146,11 +158,7 @@ class LoginFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) {
val expiryString = accountDataResult.accountData.expiry
val expiry = DateTime.parse(expiryString, AccountCache.EXPIRY_FORMAT)
- if (expiry.isAfterNow()) {
- LoginResult.ExistingAccountWithTime
- } else {
- LoginResult.ExistingAccountOutOfTime
- }
+ loginResultForExpiry(expiry)
}
is GetAccountDataResult.RpcError -> {
accountCache.login(accountToken)
@@ -206,4 +214,12 @@ class LoginFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) {
scrollToShow(accountLogin)
}
+
+ private fun loginResultForExpiry(expiry: DateTime?): LoginResult {
+ if (expiry == null || expiry.isAfterNow()) {
+ return LoginResult.ExistingAccountWithTime
+ } else {
+ return LoginResult.ExistingAccountOutOfTime
+ }
+ }
}