summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-05-04 14:44:20 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-05-04 19:02:49 +0000
commitfccd9f8d1623fdbda97c1ed91656260d67b19cf8 (patch)
treee39bbab7a7eebfe730cf2ad787d00ff148e43aa8 /android
parente9c4350bedb482e530bf25721946d7006ca09937 (diff)
downloadmullvadvpn-fccd9f8d1623fdbda97c1ed91656260d67b19cf8.tar.xz
mullvadvpn-fccd9f8d1623fdbda97c1ed91656260d67b19cf8.zip
Replace callback function with event notifier
Diffstat (limited to 'android')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/AccountCache.kt12
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/SettingsListener.kt11
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) {