summaryrefslogtreecommitdiffhomepage
path: root/android/lib
diff options
context:
space:
mode:
authorDavid Göransson <david.goransson90@gmail.com>2023-10-09 08:17:55 +0200
committerJonatan Rhodin <jonatan.rhodin@mullvad.net>2023-10-13 11:03:58 +0200
commitd4f8725e7d508af530cd1b3134f20aa73733c96a (patch)
tree4c2ecfc3f5781fb1e410ec56f8a3f0d42705fee5 /android/lib
parentbd2bdbedd280ca84a543472143c959d655651a73 (diff)
downloadmullvadvpn-d4f8725e7d508af530cd1b3134f20aa73733c96a.tar.xz
mullvadvpn-d4f8725e7d508af530cd1b3134f20aa73733c96a.zip
Refactor capitalizeFirstCharOfEachWord to model
Diffstat (limited to 'android/lib')
-rw-r--r--android/lib/common/src/main/kotlin/net/mullvad/mullvadvpn/lib/common/util/CommonStringExtensions.kt6
-rw-r--r--android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/AccountExpiry.kt17
-rw-r--r--android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/DeviceState.kt8
3 files changed, 22 insertions, 9 deletions
diff --git a/android/lib/common/src/main/kotlin/net/mullvad/mullvadvpn/lib/common/util/CommonStringExtensions.kt b/android/lib/common/src/main/kotlin/net/mullvad/mullvadvpn/lib/common/util/CommonStringExtensions.kt
index f46664e929..06a2de9148 100644
--- a/android/lib/common/src/main/kotlin/net/mullvad/mullvadvpn/lib/common/util/CommonStringExtensions.kt
+++ b/android/lib/common/src/main/kotlin/net/mullvad/mullvadvpn/lib/common/util/CommonStringExtensions.kt
@@ -7,12 +7,6 @@ private const val EXPIRY_FORMAT = "YYYY-MM-dd HH:mm:ss z"
private const val BIG_DOT_CHAR = "●"
private const val SPACE_CHAR = ' '
-fun String.capitalizeFirstCharOfEachWord(): String {
- return split(" ")
- .joinToString(" ") { word -> word.replaceFirstChar { firstChar -> firstChar.uppercase() } }
- .trimEnd()
-}
-
fun String.parseAsDateTime(): DateTime? {
return try {
DateTime.parse(this, DateTimeFormat.forPattern(EXPIRY_FORMAT))
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()
+}