diff options
| author | Albin <albin@mullvad.net> | 2022-03-24 14:23:37 +0100 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2022-04-20 16:36:51 +0200 |
| commit | 3eb6f68172d0b54a699e13fac176dc58687c3f53 (patch) | |
| tree | 24bcfa6ae9061454a68407d218ee3c33e5c50a7a /android | |
| parent | 7163ba1209d3dc2bc9c10ad8273f87be28e3aa49 (diff) | |
| download | mullvadvpn-3eb6f68172d0b54a699e13fac176dc58687c3f53.tar.xz mullvadvpn-3eb6f68172d0b54a699e13fac176dc58687c3f53.zip | |
Show device name in account view
Diffstat (limited to 'android')
5 files changed, 34 insertions, 1 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/DeviceState.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/DeviceState.kt index 04b87a87cd..a4fd52cabb 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/DeviceState.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/DeviceState.kt @@ -17,6 +17,10 @@ sealed class DeviceState : Parcelable { return this is InitialState } + fun deviceName(): String? { + return (this as? DeviceRegistered)?.deviceConfig?.device?.name + } + fun token(): String? { return (this as? DeviceRegistered)?.deviceConfig?.token } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt index 00fa67059c..d94a88ee3c 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt @@ -15,6 +15,7 @@ import net.mullvad.mullvadvpn.ui.widget.CopyableInformationView import net.mullvad.mullvadvpn.ui.widget.InformationView import net.mullvad.mullvadvpn.ui.widget.RedeemVoucherButton import net.mullvad.mullvadvpn.ui.widget.SitePaymentButton +import net.mullvad.mullvadvpn.util.capitalizeFirstCharOfEachWord import net.mullvad.talpid.tunnel.ErrorStateCause import org.joda.time.DateTime @@ -52,6 +53,7 @@ class AccountFragment : ServiceDependentFragment(OnNoService.GoBack) { private lateinit var accountExpiryView: InformationView private lateinit var accountNumberView: CopyableInformationView + private lateinit var deviceNameView: InformationView private lateinit var sitePaymentButton: SitePaymentButton private lateinit var redeemVoucherButton: RedeemVoucherButton private lateinit var titleController: CollapsibleTitleController @@ -88,7 +90,7 @@ class AccountFragment : ServiceDependentFragment(OnNoService.GoBack) { } accountExpiryView = view.findViewById(R.id.account_expiry) - + deviceNameView = view.findViewById(R.id.device_name) titleController = CollapsibleTitleController(view) return view @@ -105,6 +107,16 @@ class AccountFragment : ServiceDependentFragment(OnNoService.GoBack) { } } + jobTracker.newUiJob("updateDeviceName") { + deviceRepository.deviceState + .onEach { state -> + if (state.isInitialState()) deviceRepository.refreshDeviceState() + } + .collect { state -> + deviceNameView.information = state.deviceName()?.capitalizeFirstCharOfEachWord() + } + } + accountCache.onAccountExpiryChange.subscribe(this) { accountExpiry -> jobTracker.newUiJob("updateAccountExpiry") { currentAccountExpiry = accountExpiry diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/StringExtensions.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/StringExtensions.kt new file mode 100644 index 0000000000..df15c47e19 --- /dev/null +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/StringExtensions.kt @@ -0,0 +1,9 @@ +package net.mullvad.mullvadvpn.util + +fun String.capitalizeFirstCharOfEachWord(): String { + return split(" ") + .joinToString(" ") { word -> + word.replaceFirstChar { firstChar -> firstChar.uppercase() } + } + .trimEnd() +} diff --git a/android/app/src/main/res/layout/account.xml b/android/app/src/main/res/layout/account.xml index 9ca5e6f75b..7f2e2fb598 100644 --- a/android/app/src/main/res/layout/account.xml +++ b/android/app/src/main/res/layout/account.xml @@ -42,6 +42,13 @@ android:lines="1" android:text="@string/settings_account" style="@style/SettingsExpandedHeader" /> + <net.mullvad.mullvadvpn.ui.widget.InformationView android:id="@+id/device_name" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingHorizontal="@dimen/side_margin" + android:paddingVertical="@dimen/half_vertical_space" + mullvad:description="@string/device_name" + mullvad:whenMissing="hide" /> <net.mullvad.mullvadvpn.ui.widget.CopyableInformationView android:id="@+id/account_number" android:layout_width="match_parent" android:layout_height="wrap_content" diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index 13faeb6a83..6c08df83ee 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -55,6 +55,7 @@ <string name="report_a_problem">Report a problem</string> <string name="faqs_and_guides">FAQs & Guides</string> <string name="account_number">Account number</string> + <string name="device_name">Device name</string> <string name="mullvad_account_number">Mullvad account number</string> <string name="copied_mullvad_account_number">Copied Mullvad account number to clipboard</string> |
