diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-22 18:49:19 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-26 14:14:28 +0000 |
| commit | e199a7e214407d6759f09741acbd657df79b92a9 (patch) | |
| tree | d0ab5c164a947673ab77e879ccb51926efea4932 /android/src/main | |
| parent | 3633528a7755192f42b2af7d84f9a2a5229a5167 (diff) | |
| download | mullvadvpn-e199a7e214407d6759f09741acbd657df79b92a9.tar.xz mullvadvpn-e199a7e214407d6759f09741acbd657df79b92a9.zip | |
Use the job tracker in `SelectLocationFragment`
Diffstat (limited to 'android/src/main')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SelectLocationFragment.kt | 31 |
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()) { |
