summaryrefslogtreecommitdiffhomepage
path: root/android/app/src
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2022-09-12 13:33:58 +0200
committerAlbin <albin@mullvad.net>2022-09-12 16:09:50 +0200
commit39e4f9fc291d9290805128f0d59b06fe82619764 (patch)
treeb9be21f9052c79716a96dcc87c99a9519105153e /android/app/src
parente84c3b9f737a5bcf850f1de1710f7d95e1d7462d (diff)
downloadmullvadvpn-39e4f9fc291d9290805128f0d59b06fe82619764.tar.xz
mullvadvpn-39e4f9fc291d9290805128f0d59b06fe82619764.zip
Refactor parsing of date string
Diffstat (limited to 'android/app/src')
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt13
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/StringExtensions.kt13
2 files changed, 17 insertions, 9 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt
index 8d1e7dd7e7..db8b2e99d2 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/AccountCache.kt
@@ -14,14 +14,11 @@ import net.mullvad.mullvadvpn.model.AccountExpiry
import net.mullvad.mullvadvpn.model.AccountHistory
import net.mullvad.mullvadvpn.model.GetAccountDataResult
import net.mullvad.mullvadvpn.util.JobTracker
+import net.mullvad.mullvadvpn.util.parseAsDateTime
import net.mullvad.talpid.util.EventNotifier
-import org.joda.time.DateTime
-import org.joda.time.format.DateTimeFormat
class AccountCache(private val endpoint: ServiceEndpoint) {
companion object {
- private val EXPIRY_FORMAT = DateTimeFormat.forPattern("YYYY-MM-dd HH:mm:ss z")
-
private sealed class Command {
object CreateAccount : Command()
data class Login(val account: String) : Command()
@@ -170,7 +167,9 @@ class AccountCache(private val endpoint: ServiceEndpoint) {
private suspend fun fetchAccountExpiry(accountToken: String): AccountExpiry {
return fetchAccountData(accountToken).let { result ->
if (result is GetAccountDataResult.Ok) {
- AccountExpiry.Available(result.parseExpiryDate())
+ result.accountData.expiry.parseAsDateTime()?.let { parsedDateTime ->
+ AccountExpiry.Available(parsedDateTime)
+ } ?: AccountExpiry.Missing
} else {
AccountExpiry.Missing
}
@@ -180,8 +179,4 @@ class AccountCache(private val endpoint: ServiceEndpoint) {
private suspend fun fetchAccountData(accountToken: String): GetAccountDataResult {
return daemon.await().getAccountData(accountToken)
}
-
- private fun GetAccountDataResult.Ok.parseExpiryDate(): DateTime {
- return DateTime.parse(this.accountData.expiry, EXPIRY_FORMAT)
- }
}
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
index df15c47e19..f2daffccaf 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/StringExtensions.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/StringExtensions.kt
@@ -1,5 +1,10 @@
package net.mullvad.mullvadvpn.util
+import org.joda.time.DateTime
+import org.joda.time.format.DateTimeFormat
+
+private const val EXPIRY_FORMAT = "YYYY-MM-dd HH:mm:ss z"
+
fun String.capitalizeFirstCharOfEachWord(): String {
return split(" ")
.joinToString(" ") { word ->
@@ -7,3 +12,11 @@ fun String.capitalizeFirstCharOfEachWord(): String {
}
.trimEnd()
}
+
+fun String.parseAsDateTime(): DateTime? {
+ return try {
+ DateTime.parse(this, DateTimeFormat.forPattern(EXPIRY_FORMAT))
+ } catch (ex: Exception) {
+ null
+ }
+}