diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-01-18 15:33:32 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-04-14 14:06:05 +0000 |
| commit | e456e9fbd900230a5ca567e5e7ebf171358853de (patch) | |
| tree | a075c51f6cea42e1b40348a4f771241b1ff8cb7f /android/src | |
| parent | 4d221b06a86659fa8708909b19ba74dc65fbd6f9 (diff) | |
| download | mullvadvpn-e456e9fbd900230a5ca567e5e7ebf171358853de.tar.xz mullvadvpn-e456e9fbd900230a5ca567e5e7ebf171358853de.zip | |
Use `LoginStatus` in `AccountExpiryNotification`
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/AccountExpiryNotification.kt | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/AccountExpiryNotification.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/AccountExpiryNotification.kt index 533a91fe58..049dd68d0a 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/AccountExpiryNotification.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/AccountExpiryNotification.kt @@ -9,6 +9,7 @@ import android.net.Uri import kotlin.properties.Delegates.observable import kotlinx.coroutines.delay import net.mullvad.mullvadvpn.R +import net.mullvad.mullvadvpn.model.LoginStatus import net.mullvad.mullvadvpn.service.MullvadDaemon import net.mullvad.mullvadvpn.service.endpoint.AccountCache import net.mullvad.mullvadvpn.util.Intermittent @@ -40,29 +41,30 @@ class AccountExpiryNotification( NotificationManager.IMPORTANCE_HIGH ) - var accountExpiry by observable<DateTime?>(null) { _, oldValue, newValue -> + var loginStatus by observable<LoginStatus?>(null) { _, oldValue, newValue -> if (oldValue != newValue) { jobTracker.newUiJob("update") { update(newValue) } } } init { - accountCache.onAccountExpiryChange.subscribe(this) { newExpiry -> - accountExpiry = newExpiry + accountCache.onLoginStatusChange.subscribe(this) { newStatus -> + loginStatus = newStatus } } fun onDestroy() { accountCache.onAccountNumberChange.unsubscribe(this) - accountExpiry = null + loginStatus = null } - private suspend fun update(accountExpiry: DateTime?) { - val remainingTime = accountExpiry?.let { expiry -> Duration(DateTime.now(), expiry) } + private suspend fun update(loginStatus: LoginStatus?) { + val remainingTime = loginStatus?.expiry?.let { expiry -> Duration(DateTime.now(), expiry) } val closeToExpire = remainingTime?.isShorterThan(REMAINING_TIME_FOR_REMINDERS) ?: false + val accountIsNew = loginStatus?.isNewAccount ?: false - if (closeToExpire && !accountCache.newlyCreatedAccount) { - val notification = build(accountExpiry!!, remainingTime!!) + if (closeToExpire && !accountIsNew) { + val notification = build(loginStatus!!.expiry!!, remainingTime!!) channel.notificationManager.notify(NOTIFICATION_ID, notification) @@ -75,7 +77,7 @@ class AccountExpiryNotification( private suspend fun scheduleUpdate() { delay(TIME_BETWEEN_CHECKS) - update(accountExpiry) + update(loginStatus) } private suspend fun build(expiry: DateTime, remainingTime: Duration): Notification { |
