diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-01-06 17:25:02 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-04-14 14:06:05 +0000 |
| commit | 4d221b06a86659fa8708909b19ba74dc65fbd6f9 (patch) | |
| tree | efda16e46cf84959fd7c80de8f134e795cc0a414 /android/src | |
| parent | e1406328ef3a6717048d0449f552f5fe63d0567d (diff) | |
| download | mullvadvpn-4d221b06a86659fa8708909b19ba74dc65fbd6f9.tar.xz mullvadvpn-4d221b06a86659fa8708909b19ba74dc65fbd6f9.zip | |
Use an intermittent daemon in expiry notification
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt | 23 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/notifications/AccountExpiryNotification.kt | 5 |
2 files changed, 13 insertions, 15 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 2d057e2c97..520952627d 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt @@ -55,21 +55,11 @@ class MullvadVpnService : TalpidVpnService() { private var setUpDaemonJob: Job? = null - private var instance by observable<ServiceInstance?>(null) { _, oldInstance, newInstance -> - if (newInstance != oldInstance) { - accountExpiryNotification = newInstance?.let { instance -> - AccountExpiryNotification(this, instance.daemon, endpoint.accountCache) - } - - serviceNotifier.notify(newInstance) - } - } - - private var accountExpiryNotification by observable<AccountExpiryNotification?>(null) { - _, oldNotification, _ -> - oldNotification?.onDestroy() + private var instance by observable<ServiceInstance?>(null) { _, _, newInstance -> + serviceNotifier.notifyIfChanged(newInstance) } + private lateinit var accountExpiryNotification: AccountExpiryNotification private lateinit var daemonInstance: DaemonInstance private lateinit var endpoint: ServiceEndpoint private lateinit var keyguardManager: KeyguardManager @@ -122,6 +112,12 @@ class MullvadVpnService : TalpidVpnService() { accountNumberEvents = endpoint.settingsListener.accountNumberNotifier } + accountExpiryNotification = AccountExpiryNotification( + this, + daemonInstance.intermittentDaemon, + endpoint.accountCache + ) + daemonInstance.apply { intermittentDaemon.registerListener(this@MullvadVpnService) { daemon -> handleDaemonInstance(daemon) @@ -192,6 +188,7 @@ class MullvadVpnService : TalpidVpnService() { override fun onDestroy() { Log.d(TAG, "Service has stopped") state = State.Stopped + accountExpiryNotification.onDestroy() notificationManager.onDestroy() daemonInstance.onDestroy() instance = null 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 8e74b8de7b..533a91fe58 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 @@ -11,13 +11,14 @@ import kotlinx.coroutines.delay import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.service.MullvadDaemon import net.mullvad.mullvadvpn.service.endpoint.AccountCache +import net.mullvad.mullvadvpn.util.Intermittent import net.mullvad.mullvadvpn.util.JobTracker import org.joda.time.DateTime import org.joda.time.Duration class AccountExpiryNotification( val context: Context, - val daemon: MullvadDaemon, + val daemon: Intermittent<MullvadDaemon>, val accountCache: AccountCache ) { companion object { @@ -79,7 +80,7 @@ class AccountExpiryNotification( private suspend fun build(expiry: DateTime, remainingTime: Duration): Notification { val url = jobTracker.runOnBackground { - Uri.parse("$buyMoreTimeUrl?token=${daemon.getWwwAuthToken()}") + Uri.parse("$buyMoreTimeUrl?token=${daemon.await().getWwwAuthToken()}") } val intent = Intent(Intent.ACTION_VIEW, url) |
