summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-12-11 12:32:09 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-01-07 14:33:53 +0000
commit41a05f1fef46d6effbd112783271505a3045c741 (patch)
treef73cc5cc4586be1d7958f40ac0f08bc45959168d /android
parent243d8d20ef26dbb7d82881b9bb1791509d6c322e (diff)
downloadmullvadvpn-41a05f1fef46d6effbd112783271505a3045c741.tar.xz
mullvadvpn-41a05f1fef46d6effbd112783271505a3045c741.zip
Handle no service in service dependent fragments
Diffstat (limited to 'android')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConnectFragment.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt7
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SelectLocationFragment.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceDependentFragment.kt18
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt2
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