summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-04-28 19:05:58 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-04-30 16:26:23 +0000
commit6f0bf7e5a7e1abf5503e1c9077f2954a8133945b (patch)
tree1aab65eca15e2de2513dc5104c1f85f6008857d4 /android/src
parent638114b618ffa9ea871401a77f02594198c854bd (diff)
downloadmullvadvpn-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.kt26
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()
}
}