summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-01-18 15:33:32 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-04-14 14:06:05 +0000
commite456e9fbd900230a5ca567e5e7ebf171358853de (patch)
treea075c51f6cea42e1b40348a4f771241b1ff8cb7f /android/src
parent4d221b06a86659fa8708909b19ba74dc65fbd6f9 (diff)
downloadmullvadvpn-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.kt20
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 {