ui: do not return to detail page when restoring state
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
parent
46bf98d7f6
commit
5e844bed5e
@ -17,14 +17,17 @@ import kotlinx.coroutines.launch
|
|||||||
*/
|
*/
|
||||||
abstract class BaseActivity : ThemeChangeAwareActivity() {
|
abstract class BaseActivity : ThemeChangeAwareActivity() {
|
||||||
private val selectionChangeRegistry = SelectionChangeRegistry()
|
private val selectionChangeRegistry = SelectionChangeRegistry()
|
||||||
|
private var created = false
|
||||||
var selectedTunnel: ObservableTunnel? = null
|
var selectedTunnel: ObservableTunnel? = null
|
||||||
set(value) {
|
set(value) {
|
||||||
val oldTunnel = field
|
val oldTunnel = field
|
||||||
if (oldTunnel == value) return
|
if (oldTunnel == value) return
|
||||||
field = value
|
field = value
|
||||||
|
if (created) {
|
||||||
onSelectedTunnelChanged(oldTunnel, value)
|
onSelectedTunnelChanged(oldTunnel, value)
|
||||||
selectionChangeRegistry.notifyCallbacks(oldTunnel, 0, value)
|
selectionChangeRegistry.notifyCallbacks(oldTunnel, 0, value)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun addOnSelectedTunnelChangedListener(listener: OnSelectedTunnelChangedListener) {
|
fun addOnSelectedTunnelChangedListener(listener: OnSelectedTunnelChangedListener) {
|
||||||
selectionChangeRegistry.add(listener)
|
selectionChangeRegistry.add(listener)
|
||||||
@ -39,9 +42,16 @@ abstract class BaseActivity : ThemeChangeAwareActivity() {
|
|||||||
intent != null -> intent.getStringExtra(KEY_SELECTED_TUNNEL)
|
intent != null -> intent.getStringExtra(KEY_SELECTED_TUNNEL)
|
||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
if (savedTunnelName != null)
|
if (savedTunnelName != null) {
|
||||||
lifecycleScope.launch {
|
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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user