summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-03-19 14:50:00 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-03-30 16:46:26 +0000
commit6e404e123634dd163ac89d3554ce0f695418bcf4 (patch)
tree0b1f2dd3c2d5eaa3fc38b6c4fe097fe5bb432c0d /android/src
parent6403def1ae84df543686a1922d3bf322d671e924 (diff)
downloadmullvadvpn-6e404e123634dd163ac89d3554ce0f695418bcf4.tar.xz
mullvadvpn-6e404e123634dd163ac89d3554ce0f695418bcf4.zip
Listen for MTU value setting changes
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt22
1 files changed, 22 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt
index 325c6e3b8a..8d623d3343 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt
@@ -5,7 +5,12 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.GlobalScope
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.launch
import net.mullvad.mullvadvpn.R
+import net.mullvad.mullvadvpn.model.Settings
private const val MIN_MTU_VALUE = 1280
private const val MAX_MTU_VALUE = 1420
@@ -13,6 +18,9 @@ private const val MAX_MTU_VALUE = 1420
class AdvancedFragment : ServiceDependentFragment(OnNoService.GoBack) {
private lateinit var wireguardMtuInput: CellInput
+ private var subscriptionId: Int? = null
+ private var updateUiJob: Job? = null
+
override fun onSafelyCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
@@ -37,6 +45,20 @@ class AdvancedFragment : ServiceDependentFragment(OnNoService.GoBack) {
text = context.getString(R.string.wireguard_mtu_footer, MIN_MTU_VALUE, MAX_MTU_VALUE)
}
+ settingsListener.subscribe({ settings -> updateUi(settings) })
+
return view
}
+
+ private fun updateUi(settings: Settings) {
+ updateUiJob?.cancel()
+ updateUiJob = GlobalScope.launch(Dispatchers.Main) {
+ wireguardMtuInput.value = settings.tunnelOptions.wireguard.mtu
+ }
+ }
+
+ override fun onSafelyDestroyView() {
+ subscriptionId?.let { id -> settingsListener.unsubscribe(id) }
+ updateUiJob?.cancel()
+ }
}