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