diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-04 14:44:20 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-04 19:02:49 +0000 |
| commit | fccd9f8d1623fdbda97c1ed91656260d67b19cf8 (patch) | |
| tree | e39bbab7a7eebfe730cf2ad787d00ff148e43aa8 /android/src | |
| parent | e9c4350bedb482e530bf25721946d7006ca09937 (diff) | |
| download | mullvadvpn-fccd9f8d1623fdbda97c1ed91656260d67b19cf8.tar.xz mullvadvpn-fccd9f8d1623fdbda97c1ed91656260d67b19cf8.zip | |
Replace callback function with event notifier
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/AccountCache.kt | 12 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/SettingsListener.kt | 11 |
2 files changed, 8 insertions, 15 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/AccountCache.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/AccountCache.kt index 7ec6ebe36f..88d0baadd7 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/AccountCache.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/AccountCache.kt @@ -13,6 +13,10 @@ import org.joda.time.format.DateTimeFormat val EXPIRY_FORMAT = DateTimeFormat.forPattern("YYYY-MM-dd HH:mm:ss z") class AccountCache(val daemon: MullvadDaemon, val settingsListener: SettingsListener) { + private val subscriptionId = settingsListener.accountNumberNotifier.subscribe { accountNumber -> + handleNewAccountNumber(accountNumber) + } + private var fetchJob: Job? = null private var accountNumber: String? = null private var accountExpiry: DateTime? = null @@ -25,19 +29,13 @@ class AccountCache(val daemon: MullvadDaemon, val settingsListener: SettingsList } } - init { - settingsListener.onAccountNumberChange = { accountNumber -> - handleNewAccountNumber(accountNumber) - } - } - fun refetch() { fetchJob?.cancel() fetchJob = fetchAccountExpiry() } fun onDestroy() { - settingsListener.onAccountNumberChange = null + settingsListener.accountNumberNotifier.unsubscribe(subscriptionId) fetchJob?.cancel() } diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/SettingsListener.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/SettingsListener.kt index 033eef12f9..3ba8b058a7 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/SettingsListener.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/SettingsListener.kt @@ -17,13 +17,7 @@ class SettingsListener(val daemon: MullvadDaemon, val initialSettings: Settings) maybeSettings?.let { settings -> handleNewSettings(settings) } } - var onAccountNumberChange: ((String?) -> Unit)? = null - set(value) { - synchronized(this) { - field = value - value?.invoke(settings.accountToken) - } - } + val accountNumberNotifier = EventNotifier(initialSettings.accountToken) var onRelaySettingsChange: ((RelaySettings?) -> Unit)? = null set(value) { @@ -36,6 +30,7 @@ class SettingsListener(val daemon: MullvadDaemon, val initialSettings: Settings) fun onDestroy() { daemon.onSettingsChange.unsubscribe(listenerId) + accountNumberNotifier.unsubscribeAll() settingsNotifier.unsubscribeAll() } @@ -50,7 +45,7 @@ class SettingsListener(val daemon: MullvadDaemon, val initialSettings: Settings) private fun handleNewSettings(newSettings: Settings) { synchronized(this) { if (settings.accountToken != newSettings.accountToken) { - onAccountNumberChange?.invoke(newSettings.accountToken) + accountNumberNotifier.notify(newSettings.accountToken) } if (settings.relaySettings != newSettings.relaySettings) { |
