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