summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt3
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/SettingsListener.kt14
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)
}
}
}