diff options
Diffstat (limited to 'android/app')
| -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 + } +} |
