diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-11-27 10:48:00 -0300 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-11-27 10:48:00 -0300 |
| commit | e8657063e1c33907959a54094b11d670409c61f6 (patch) | |
| tree | 59dba036899b60e21c63eb8a981427b633dd0941 /android/src | |
| parent | 703e592924286b9ce4b590771c031173c0b2d9f7 (diff) | |
| parent | 810bd90bcbc82338e212779f264d8ce3ccd7b41c (diff) | |
| download | mullvadvpn-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.kt | 26 |
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 + } + } } |
