diff options
| author | David Göransson <david.goransson90@gmail.com> | 2023-10-09 08:17:55 +0200 |
|---|---|---|
| committer | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2023-10-13 11:03:58 +0200 |
| commit | d4f8725e7d508af530cd1b3134f20aa73733c96a (patch) | |
| tree | 4c2ecfc3f5781fb1e410ec56f8a3f0d42705fee5 /android/lib/model | |
| parent | bd2bdbedd280ca84a543472143c959d655651a73 (diff) | |
| download | mullvadvpn-d4f8725e7d508af530cd1b3134f20aa73733c96a.tar.xz mullvadvpn-d4f8725e7d508af530cd1b3134f20aa73733c96a.zip | |
Refactor capitalizeFirstCharOfEachWord to model
Diffstat (limited to 'android/lib/model')
| -rw-r--r-- | android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/AccountExpiry.kt | 17 | ||||
| -rw-r--r-- | android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/DeviceState.kt | 8 |
2 files changed, 22 insertions, 3 deletions
diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/AccountExpiry.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/AccountExpiry.kt index a91ce46148..f5738ec21d 100644 --- a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/AccountExpiry.kt +++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/AccountExpiry.kt @@ -1,15 +1,28 @@ package net.mullvad.mullvadvpn.model import android.os.Parcelable +import kotlin.time.Duration.Companion.milliseconds +import kotlin.time.DurationUnit import kotlinx.parcelize.Parcelize import org.joda.time.DateTime sealed class AccountExpiry : Parcelable { - @Parcelize data class Available(val expiryDateTime: DateTime) : AccountExpiry() + @Parcelize + data class Available(val expiryDateTime: DateTime) : AccountExpiry() { + override fun daysLeft(): Int = + (expiryDateTime.toInstant().millis - DateTime.now().toInstant().millis) + .milliseconds + .toInt(DurationUnit.DAYS) + } - @Parcelize object Missing : AccountExpiry() + @Parcelize + data object Missing : AccountExpiry() fun date(): DateTime? { return (this as? Available)?.expiryDateTime } + + open fun daysLeft(): Int? { + return (this as? Available)?.daysLeft() + } } diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/DeviceState.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/DeviceState.kt index 440d03de55..2af9b01362 100644 --- a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/DeviceState.kt +++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/DeviceState.kt @@ -19,10 +19,16 @@ sealed class DeviceState : Parcelable { } fun deviceName(): String? { - return (this as? LoggedIn)?.accountAndDevice?.device?.name + return (this as? LoggedIn)?.accountAndDevice?.device?.name?.capitalizeFirstCharOfEachWord() } fun token(): String? { return (this as? LoggedIn)?.accountAndDevice?.account_token } } + +private fun String.capitalizeFirstCharOfEachWord(): String { + return split(" ") + .joinToString(" ") { word -> word.replaceFirstChar { firstChar -> firstChar.uppercase() } } + .trimEnd() +} |
