diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-08-13 22:14:23 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-08-17 13:02:44 +0000 |
| commit | 5951f90d558cf3a7606b90cd11bf3a873d2b1b10 (patch) | |
| tree | 29311dcf094718254c2a6a83e4abc91f984d839d /android | |
| parent | c586b294040e6c0917b76b0ab6453a5638240698 (diff) | |
| download | mullvadvpn-5951f90d558cf3a7606b90cd11bf3a873d2b1b10.tar.xz mullvadvpn-5951f90d558cf3a7606b90cd11bf3a873d2b1b10.zip | |
Use `AccountCache` for account expiry notification
Diffstat (limited to 'android')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt | 14 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/AccountExpiryNotification.kt | 18 |
2 files changed, 20 insertions, 12 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt index f4fb25a895..17003b5440 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt @@ -19,8 +19,6 @@ import net.mullvad.mullvadvpn.service.tunnelstate.TunnelStateUpdater import net.mullvad.mullvadvpn.ui.MainActivity import net.mullvad.talpid.TalpidVpnService import net.mullvad.talpid.util.EventNotifier -import net.mullvad.talpid.util.autoSubscribable -import org.joda.time.DateTime private const val RELAYS_FILE = "relays.json" @@ -49,23 +47,17 @@ class MullvadVpnService : TalpidVpnService() { if (newInstance != oldInstance) { oldInstance?.onDestroy() - accountExpiryNotification = newInstance?.daemon?.let { daemon -> - AccountExpiryNotification(this, daemon) + accountExpiryNotification = newInstance?.let { instance -> + AccountExpiryNotification(this, instance.daemon, instance.accountCache) } - accountExpiryEvents = newInstance?.accountCache?.onAccountExpiryChange - serviceNotifier.notify(newInstance) } } - private var accountExpiryEvents by autoSubscribable<DateTime?>(this, null) { expiry -> - accountExpiryNotification?.accountExpiry = expiry - } - private var accountExpiryNotification by observable<AccountExpiryNotification?>(null) { _, oldNotification, _ -> - oldNotification?.accountExpiry = null + oldNotification?.onDestroy() } private lateinit var keyguardManager: KeyguardManager 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 34ac1d5a7d..78b8ac8e34 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,12 +9,17 @@ import android.net.Uri import kotlin.properties.Delegates.observable import kotlinx.coroutines.delay import net.mullvad.mullvadvpn.R +import net.mullvad.mullvadvpn.service.AccountCache import net.mullvad.mullvadvpn.service.MullvadDaemon import net.mullvad.mullvadvpn.util.JobTracker import org.joda.time.DateTime import org.joda.time.Duration -class AccountExpiryNotification(val context: Context, val daemon: MullvadDaemon) { +class AccountExpiryNotification( + val context: Context, + val daemon: MullvadDaemon, + val accountCache: AccountCache +) { companion object { val NOTIFICATION_ID: Int = 2 val REMAINING_TIME_FOR_REMINDERS = Duration.standardDays(2) @@ -40,6 +45,17 @@ class AccountExpiryNotification(val context: Context, val daemon: MullvadDaemon) } } + init { + accountCache.onAccountExpiryChange.subscribe(this) { newExpiry -> + accountExpiry = newExpiry + } + } + + fun onDestroy() { + accountCache.onAccountNumberChange.unsubscribe(this) + accountExpiry = null + } + private suspend fun update(accountExpiry: DateTime?) { val remainingTime = accountExpiry?.let { expiry -> Duration(DateTime.now(), expiry) } |
