diff options
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(" ") + } + } } |
