diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-04-29 14:41:45 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-04-30 16:26:23 +0000 |
| commit | e8589c8b54d17e3d95766ec3d5d5f0865936dfdd (patch) | |
| tree | 67032aef3ef4914b6acdc062d55d2cdc061543a2 /android/src | |
| parent | 6d9bdbb328ff0f8e872244177f4f8879de37f59f (diff) | |
| download | mullvadvpn-e8589c8b54d17e3d95766ec3d5d5f0865936dfdd.tar.xz mullvadvpn-e8589c8b54d17e3d95766ec3d5d5f0865936dfdd.zip | |
Show account number in Welcome screen
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WelcomeFragment.kt | 49 |
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(" ") + } + } } |
