diff options
| author | Albin <albin@mullvad.net> | 2022-09-12 13:33:58 +0200 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2022-09-12 16:09:50 +0200 |
| commit | 39e4f9fc291d9290805128f0d59b06fe82619764 (patch) | |
| tree | b9be21f9052c79716a96dcc87c99a9519105153e /android/app/src | |
| parent | e84c3b9f737a5bcf850f1de1710f7d95e1d7462d (diff) | |
| download | mullvadvpn-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.kt | 13 | ||||
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/util/StringExtensions.kt | 13 |
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 + } +} |
