summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-05-22 18:49:19 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-05-26 14:14:28 +0000
commite199a7e214407d6759f09741acbd657df79b92a9 (patch)
treed0ab5c164a947673ab77e879ccb51926efea4932 /android/src
parent3633528a7755192f42b2af7d84f9a2a5229a5167 (diff)
downloadmullvadvpn-e199a7e214407d6759f09741acbd657df79b92a9.tar.xz
mullvadvpn-e199a7e214407d6759f09741acbd657df79b92a9.zip
Use the job tracker in `SelectLocationFragment`
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SelectLocationFragment.kt31
1 files changed, 13 insertions, 18 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SelectLocationFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SelectLocationFragment.kt
index 8b5f8e8c0a..5b95c9d296 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SelectLocationFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SelectLocationFragment.kt
@@ -9,10 +9,6 @@ import android.view.View
import android.view.ViewGroup
import android.widget.ImageButton
import android.widget.ViewSwitcher
-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.Constraint
import net.mullvad.mullvadvpn.model.KeygenEvent
@@ -28,16 +24,19 @@ class SelectLocationFragment : ServiceDependentFragment(OnNoService.GoToLaunchSc
private lateinit var relayListAdapter: RelayListAdapter
private lateinit var relayListContainer: ViewSwitcher
- private var updateRelayListJob: Job? = null
-
override fun onAttach(context: Context) {
super.onAttach(context)
relayListAdapter = RelayListAdapter(context.resources).apply {
onSelect = { relayItem ->
- updateLocationConstraint(relayItem)
- maybeConnect()
- close()
+ jobTracker.newBackgroundJob("selectRelay") {
+ updateLocationConstraint(relayItem)
+ maybeConnect()
+
+ jobTracker.newUiJob("close") {
+ close()
+ }
+ }
}
}
}
@@ -61,7 +60,9 @@ class SelectLocationFragment : ServiceDependentFragment(OnNoService.GoToLaunchSc
override fun onSafelyResume() {
relayListListener.onRelayListChange = { relayList, selectedItem ->
- updateRelayListJob = updateRelayList(relayList, selectedItem)
+ jobTracker.newUiJob("updateRelayList") {
+ updateRelayList(relayList, selectedItem)
+ }
}
}
@@ -69,10 +70,6 @@ class SelectLocationFragment : ServiceDependentFragment(OnNoService.GoToLaunchSc
relayListListener.onRelayListChange = null
}
- override fun onSafelyDestroyView() {
- updateRelayListJob?.cancel()
- }
-
fun close() {
activity?.onBackPressed()
}
@@ -86,16 +83,14 @@ class SelectLocationFragment : ServiceDependentFragment(OnNoService.GoToLaunchSc
}
}
- private fun updateLocationConstraint(relayItem: RelayItem?) =
- GlobalScope.launch(Dispatchers.Default) {
+ private fun updateLocationConstraint(relayItem: RelayItem?) {
val constraint: Constraint<LocationConstraint> =
relayItem?.run { Constraint.Only(location) } ?: Constraint.Any()
daemon.updateRelaySettings(RelaySettingsUpdate.Normal(RelayConstraintsUpdate(constraint)))
}
- private fun updateRelayList(relayList: RelayList, selectedItem: RelayItem?) =
- GlobalScope.launch(Dispatchers.Main) {
+ private fun updateRelayList(relayList: RelayList, selectedItem: RelayItem?) {
relayListAdapter.onRelayListChange(relayList, selectedItem)
if (relayList.countries.isEmpty()) {