diff options
Diffstat (limited to 'android')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt | 3 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/SettingsListener.kt | 14 |
2 files changed, 14 insertions, 3 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt index 1731ce2a56..5d871e0511 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt @@ -20,6 +20,7 @@ import net.mullvad.mullvadvpn.dataproxy.AccountCache import net.mullvad.mullvadvpn.dataproxy.LocationInfoCache import net.mullvad.mullvadvpn.dataproxy.MullvadProblemReport import net.mullvad.mullvadvpn.dataproxy.RelayListListener +import net.mullvad.mullvadvpn.dataproxy.SettingsListener import net.mullvad.mullvadvpn.model.RelaySettings import net.mullvad.mullvadvpn.model.Settings import net.mullvad.mullvadvpn.relaylist.RelayItem @@ -39,6 +40,7 @@ class MainActivity : FragmentActivity() { val locationInfoCache = LocationInfoCache(asyncDaemon) val problemReport = MullvadProblemReport() var relayListListener = RelayListListener(this) + var settingsListener = SettingsListener(this) private var waitForDaemonJob: Job? = null @@ -84,6 +86,7 @@ class MainActivity : FragmentActivity() { override fun onDestroy() { accountCache.onDestroy() relayListListener.onDestroy() + settingsListener.onDestroy() waitForDaemonJob?.cancel() asyncSettings.cancel() diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/SettingsListener.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/SettingsListener.kt index 933b64e2c6..868f088d77 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/SettingsListener.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/SettingsListener.kt @@ -1,18 +1,26 @@ package net.mullvad.mullvadvpn.dataproxy +import kotlinx.coroutines.launch +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.GlobalScope + import net.mullvad.mullvadvpn.MainActivity import net.mullvad.mullvadvpn.model.Settings import net.mullvad.mullvadvpn.MullvadDaemon class SettingsListener(val parentActivity: MainActivity) { - private var daemon: MullvadDaemon? = null + private lateinit var daemon: MullvadDaemon + private val setUpJob = setUp() private var settings: Settings? = null fun onDestroy() { setUpJob.cancel() - daemon?.onSettingsChange = null + + if (::daemon.isInitialized) { + daemon.onSettingsChange = null + } } private fun setUp() = GlobalScope.launch(Dispatchers.Default) { @@ -26,7 +34,7 @@ class SettingsListener(val parentActivity: MainActivity) { synchronized(this) { if (settings == null) { - settings = initialSettings + handleNewSettings(initialSettings) } } } |
