summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-04-27 21:18:08 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-04-28 16:52:51 +0000
commit21745fbc0f186ce1d85e3ae5f636a0ee9bce11e9 (patch)
tree2ff159bba870594023e254a5b7edcf8d0e3e9825 /android
parent02d01b5568bebe297db24e90358335bb1a0c71de (diff)
downloadmullvadvpn-21745fbc0f186ce1d85e3ae5f636a0ee9bce11e9.tar.xz
mullvadvpn-21745fbc0f186ce1d85e3ae5f636a0ee9bce11e9.zip
Implement creating a new account
Diffstat (limited to 'android')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt40
-rw-r--r--android/src/main/res/values/strings.xml3
2 files changed, 29 insertions, 14 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 9814a32290..c8663eb149 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt
@@ -1,7 +1,5 @@
package net.mullvad.mullvadvpn.ui
-import android.content.Intent
-import android.net.Uri
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@@ -71,11 +69,25 @@ class LoginFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) {
jobTracker.cancelAllJobs()
}
- private fun createAccount() {
- val uri = Uri.parse(parentActivity.getString(R.string.create_account_url))
- val intent = Intent(Intent.ACTION_VIEW, uri)
+ private suspend fun createAccount() {
+ title.setText(R.string.logging_in_title)
+ subtitle.setText(R.string.creating_new_account)
+
+ loggingInStatus.visibility = View.VISIBLE
+ loginFailStatus.visibility = View.GONE
+ loggedInStatus.visibility = View.GONE
- startActivity(intent)
+ accountInput.state = LoginState.InProgress
+
+ val accountToken = jobTracker.runOnBackground {
+ daemon.createNewAccount()
+ }
+
+ if (accountToken == null) {
+ loginFailure(R.string.failed_to_create_account)
+ } else {
+ loggedIn(resources.getString(R.string.account_created))
+ }
}
private fun login(accountToken: String) {
@@ -114,22 +126,22 @@ class LoginFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) {
}
if (loginSucceeded) {
- loggedIn()
+ loggedIn("")
} else {
- loginFailure()
+ loginFailure(R.string.login_fail_description)
}
}
}
- private suspend fun loggedIn() {
- showLoggedInMessage()
+ private suspend fun loggedIn(subtitleMessage: String) {
+ showLoggedInMessage(subtitleMessage)
delay(1000)
loggedIn.complete(Unit)
}
- private fun showLoggedInMessage() {
+ private fun showLoggedInMessage(subtitleMessage: String) {
title.setText(R.string.logged_in_title)
- subtitle.setText("")
+ subtitle.setText(subtitleMessage)
loggingInStatus.visibility = View.GONE
loginFailStatus.visibility = View.GONE
@@ -145,9 +157,9 @@ class LoginFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) {
}
}
- private fun loginFailure() {
+ private fun loginFailure(description: Int) {
title.setText(R.string.login_fail_title)
- subtitle.setText(R.string.login_fail_description)
+ subtitle.setText(description)
loggingInStatus.visibility = View.GONE
loginFailStatus.visibility = View.VISIBLE
diff --git a/android/src/main/res/values/strings.xml b/android/src/main/res/values/strings.xml
index cbef0fe68c..ff70bf0730 100644
--- a/android/src/main/res/values/strings.xml
+++ b/android/src/main/res/values/strings.xml
@@ -29,6 +29,9 @@
<string name="dont_have_an_account">Don\'t have an account
number?</string>
<string name="create_account">Create account</string>
+ <string name="creating_new_account">Creating new account</string>
+ <string name="failed_to_create_account">Failed to create account</string>
+ <string name="account_created">Account created</string>
<string name="settings">Settings</string>
<string name="settings_account">Account</string>
<string name="less_than_a_day_left">less than a day