summaryrefslogtreecommitdiffhomepage
path: root/android/src/main
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-04-29 14:41:45 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-04-30 16:26:23 +0000
commite8589c8b54d17e3d95766ec3d5d5f0865936dfdd (patch)
tree67032aef3ef4914b6acdc062d55d2cdc061543a2 /android/src/main
parent6d9bdbb328ff0f8e872244177f4f8879de37f59f (diff)
downloadmullvadvpn-e8589c8b54d17e3d95766ec3d5d5f0865936dfdd.tar.xz
mullvadvpn-e8589c8b54d17e3d95766ec3d5d5f0865936dfdd.zip
Show account number in Welcome screen
Diffstat (limited to 'android/src/main')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WelcomeFragment.kt49
1 files changed, 49 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WelcomeFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WelcomeFragment.kt
index 91d8102e44..c7c79461c3 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WelcomeFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WelcomeFragment.kt
@@ -4,9 +4,15 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import android.widget.TextView
import net.mullvad.mullvadvpn.R
+import net.mullvad.mullvadvpn.util.JobTracker
class WelcomeFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) {
+ private val jobTracker = JobTracker()
+
+ private lateinit var accountLabel: TextView
+
override fun onSafelyCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
@@ -18,6 +24,49 @@ class WelcomeFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) {
parentActivity.openSettings()
}
+ accountLabel = view.findViewById<TextView>(R.id.account_number)
+
return view
}
+
+ override fun onSafelyResume() {
+ accountCache.onAccountDataChange = { account, _ -> updateAccountNumber(account) }
+ }
+
+ override fun onSafelyPause() {
+ accountCache.onAccountDataChange = null
+ }
+
+ override fun onSafelyDestroyView() {
+ jobTracker.cancelAllJobs()
+ }
+
+ private fun updateAccountNumber(rawAccountNumber: String?) {
+ val accountText = rawAccountNumber?.let { account ->
+ addSpacesToAccountText(account)
+ }
+
+ jobTracker.newUiJob("updateAccountNumber") {
+ accountLabel.text = accountText ?: ""
+ }
+ }
+
+ private fun addSpacesToAccountText(account: String): String {
+ val length = account.length
+
+ if (length == 0) {
+ return ""
+ } else {
+ val numParts = (length - 1) / 4 + 1
+
+ val parts = Array(numParts) { index ->
+ val startIndex = index * 4
+ val endIndex = minOf(startIndex + 4, length)
+
+ account.substring(startIndex, endIndex)
+ }
+
+ return parts.joinToString(" ")
+ }
+ }
}