diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-12-11 12:32:09 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-01-07 14:33:53 +0000 |
| commit | 41a05f1fef46d6effbd112783271505a3045c741 (patch) | |
| tree | f73cc5cc4586be1d7958f40ac0f08bc45959168d /android/src | |
| parent | 243d8d20ef26dbb7d82881b9bb1791509d6c322e (diff) | |
| download | mullvadvpn-41a05f1fef46d6effbd112783271505a3045c741.tar.xz mullvadvpn-41a05f1fef46d6effbd112783271505a3045c741.zip | |
Handle no service in service dependent fragments
Diffstat (limited to 'android/src')
7 files changed, 29 insertions, 6 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt index 2c045a8523..a03b99d9f9 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt @@ -18,7 +18,7 @@ import kotlinx.coroutines.launch import net.mullvad.mullvadvpn.R import org.joda.time.DateTime -class AccountFragment : ServiceDependentFragment() { +class AccountFragment : ServiceDependentFragment(OnNoService.GoBack) { private lateinit var accountExpiryContainer: View private lateinit var accountExpiryDisplay: TextView private lateinit var accountNumberContainer: View diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConnectFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConnectFragment.kt index 1c41c912ac..a6b076b03b 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConnectFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConnectFragment.kt @@ -15,7 +15,7 @@ import net.mullvad.mullvadvpn.model.TunnelState val KEY_IS_TUNNEL_INFO_EXPANDED = "is_tunnel_info_expanded" -class ConnectFragment : ServiceDependentFragment() { +class ConnectFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) { private lateinit var actionButton: ConnectActionButton private lateinit var switchLocationButton: SwitchLocationButton private lateinit var headerBar: HeaderBar diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt index 094b906622..15bbf26389 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt @@ -18,7 +18,7 @@ import kotlinx.coroutines.launch import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.model.GetAccountDataResult -class LoginFragment : ServiceDependentFragment() { +class LoginFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) { private lateinit var title: TextView private lateinit var subtitle: TextView private lateinit var loggingInStatus: View diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt index 71c8ffdfb5..c1502fc300 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt @@ -122,6 +122,13 @@ class MainActivity : FragmentActivity() { } } + fun returnToLaunchScreen() { + supportFragmentManager?.beginTransaction()?.apply { + replace(R.id.main_fragment, LaunchFragment()) + commit() + } + } + fun requestVpnPermission(intent: Intent) { startActivityForResult(intent, 0) } 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 c5dfd81307..dc229dc7c0 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SelectLocationFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SelectLocationFragment.kt @@ -23,7 +23,7 @@ import net.mullvad.mullvadvpn.relaylist.RelayItemDividerDecoration import net.mullvad.mullvadvpn.relaylist.RelayList import net.mullvad.mullvadvpn.relaylist.RelayListAdapter -class SelectLocationFragment : ServiceDependentFragment() { +class SelectLocationFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) { private lateinit var relayListAdapter: RelayListAdapter private lateinit var relayListContainer: ViewSwitcher diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceDependentFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceDependentFragment.kt index fa855137db..96ea5ec1f5 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceDependentFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceDependentFragment.kt @@ -1,5 +1,8 @@ package net.mullvad.mullvadvpn.ui +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch import net.mullvad.mullvadvpn.dataproxy.AccountCache import net.mullvad.mullvadvpn.dataproxy.AppVersionInfoCache import net.mullvad.mullvadvpn.dataproxy.ConnectionProxy @@ -10,7 +13,11 @@ import net.mullvad.mullvadvpn.dataproxy.SettingsListener import net.mullvad.mullvadvpn.service.MullvadDaemon import net.mullvad.talpid.ConnectivityListener -open class ServiceDependentFragment : ServiceAwareFragment() { +open class ServiceDependentFragment(val onNoService: OnNoService) : ServiceAwareFragment() { + enum class OnNoService { + GoBack, GoToLaunchScreen + } + lateinit var accountCache: AccountCache private set @@ -49,4 +56,13 @@ open class ServiceDependentFragment : ServiceAwareFragment() { relayListListener = serviceConnection.relayListListener settingsListener = serviceConnection.settingsListener } + + override fun onNoServiceConnection() { + GlobalScope.launch(Dispatchers.Main) { + when (onNoService) { + OnNoService.GoBack -> parentActivity.onBackPressed() + OnNoService.GoToLaunchScreen -> parentActivity.returnToLaunchScreen() + } + } + } } diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt index f24a5b7c79..5614fb1f82 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt @@ -30,7 +30,7 @@ import org.joda.time.format.DateTimeFormat val RFC3339_FORMAT = DateTimeFormat.forPattern("YYYY-MM-dd HH:mm:ss.SSSSSSSSSS z") val KEY_AGE_FORMAT = DateTimeFormat.forPattern("YYYY-MM-dd HH:mm") -class WireguardKeyFragment : ServiceDependentFragment() { +class WireguardKeyFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) { private var currentJob: Job? = null private var updateViewsJob: Job? = null private var tunnelStateListener: Int? = null |
