From 5e844bed5e06cc8eed990848da720f5ff96859f8 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Sun, 2 Apr 2023 15:35:39 +0200 Subject: ui: do not return to detail page when restoring state Signed-off-by: Jason A. Donenfeld --- .../com/wireguard/android/activity/BaseActivity.kt | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'ui') diff --git a/ui/src/main/java/com/wireguard/android/activity/BaseActivity.kt b/ui/src/main/java/com/wireguard/android/activity/BaseActivity.kt index 8f0855ea..c89bc5aa 100644 --- a/ui/src/main/java/com/wireguard/android/activity/BaseActivity.kt +++ b/ui/src/main/java/com/wireguard/android/activity/BaseActivity.kt @@ -17,13 +17,16 @@ import kotlinx.coroutines.launch */ abstract class BaseActivity : ThemeChangeAwareActivity() { private val selectionChangeRegistry = SelectionChangeRegistry() + private var created = false var selectedTunnel: ObservableTunnel? = null set(value) { val oldTunnel = field if (oldTunnel == value) return field = value - onSelectedTunnelChanged(oldTunnel, value) - selectionChangeRegistry.notifyCallbacks(oldTunnel, 0, value) + if (created) { + onSelectedTunnelChanged(oldTunnel, value) + selectionChangeRegistry.notifyCallbacks(oldTunnel, 0, value) + } } fun addOnSelectedTunnelChangedListener(listener: OnSelectedTunnelChangedListener) { @@ -39,10 +42,17 @@ abstract class BaseActivity : ThemeChangeAwareActivity() { intent != null -> intent.getStringExtra(KEY_SELECTED_TUNNEL) else -> null } - if (savedTunnelName != null) + if (savedTunnelName != null) { lifecycleScope.launch { - selectedTunnel = Application.getTunnelManager().getTunnels()[savedTunnelName] + val tunnel = Application.getTunnelManager().getTunnels()[savedTunnelName] + if (tunnel == null) + created = true + selectedTunnel = tunnel + created = true } + } else { + created = true + } } override fun onSaveInstanceState(outState: Bundle) { -- cgit v1.2.3