diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-04-28 19:05:58 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-04-30 16:26:23 +0000 |
| commit | 6f0bf7e5a7e1abf5503e1c9077f2954a8133945b (patch) | |
| tree | 1aab65eca15e2de2513dc5104c1f85f6008857d4 /android/src | |
| parent | 638114b618ffa9ea871401a77f02594198c854bd (diff) | |
| download | mullvadvpn-6f0bf7e5a7e1abf5503e1c9077f2954a8133945b.tar.xz mullvadvpn-6f0bf7e5a7e1abf5503e1c9077f2954a8133945b.zip | |
Enter Welcome screen after creating a new account
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt | 26 |
1 files changed, 17 insertions, 9 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 c8663eb149..959431b85a 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt @@ -1,6 +1,7 @@ package net.mullvad.mullvadvpn.ui import android.os.Bundle +import android.support.v4.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -16,6 +17,11 @@ import net.mullvad.mullvadvpn.ui.widget.Button import net.mullvad.mullvadvpn.util.JobTracker class LoginFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) { + enum class LoginResult { + ExistingAccount, + NewAccount; + } + private lateinit var title: TextView private lateinit var subtitle: TextView private lateinit var loggingInStatus: View @@ -24,7 +30,7 @@ class LoginFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) { private lateinit var accountInput: AccountInput private val jobTracker = JobTracker() - private val loggedIn = CompletableDeferred<Unit>() + private val loggedIn = CompletableDeferred<LoginResult>() override fun onSafelyCreateView( inflater: LayoutInflater, @@ -54,8 +60,10 @@ class LoginFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) { override fun onSafelyResume() { jobTracker.newUiJob("advanceToNextScreen") { - loggedIn.join() - openConnectScreen() + when (loggedIn.await()) { + LoginResult.ExistingAccount -> openNextScreen(ConnectFragment()) + LoginResult.NewAccount -> openNextScreen(WelcomeFragment()) + } } fetchHistory() @@ -86,7 +94,7 @@ class LoginFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) { if (accountToken == null) { loginFailure(R.string.failed_to_create_account) } else { - loggedIn(resources.getString(R.string.account_created)) + loggedIn(resources.getString(R.string.account_created), LoginResult.NewAccount) } } @@ -126,17 +134,17 @@ class LoginFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) { } if (loginSucceeded) { - loggedIn("") + loggedIn("", LoginResult.ExistingAccount) } else { loginFailure(R.string.login_fail_description) } } } - private suspend fun loggedIn(subtitleMessage: String) { + private suspend fun loggedIn(subtitleMessage: String, result: LoginResult) { showLoggedInMessage(subtitleMessage) delay(1000) - loggedIn.complete(Unit) + loggedIn.complete(result) } private fun showLoggedInMessage(subtitleMessage: String) { @@ -150,9 +158,9 @@ class LoginFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) { accountInput.state = LoginState.Success } - private fun openConnectScreen() { + private fun openNextScreen(fragment: Fragment) { fragmentManager?.beginTransaction()?.apply { - replace(R.id.main_fragment, ConnectFragment()) + replace(R.id.main_fragment, fragment) commit() } } |
