diff options
Diffstat (limited to 'ui/src/main/java/com/wireguard/android/activity/BaseActivity.kt')
-rw-r--r-- | ui/src/main/java/com/wireguard/android/activity/BaseActivity.kt | 9 |
1 files changed, 6 insertions, 3 deletions
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 bec673db..cfd34e42 100644 --- a/ui/src/main/java/com/wireguard/android/activity/BaseActivity.kt +++ b/ui/src/main/java/com/wireguard/android/activity/BaseActivity.kt @@ -25,8 +25,11 @@ abstract class BaseActivity : AppCompatActivity() { if (oldTunnel == value) return field = value if (created) { - onSelectedTunnelChanged(oldTunnel, value) - selectionChangeRegistry.notifyCallbacks(oldTunnel, 0, value) + if (!onSelectedTunnelChanged(oldTunnel, value)) { + field = oldTunnel + } else { + selectionChangeRegistry.notifyCallbacks(oldTunnel, 0, value) + } } } @@ -61,7 +64,7 @@ abstract class BaseActivity : AppCompatActivity() { super.onSaveInstanceState(outState) } - protected abstract fun onSelectedTunnelChanged(oldTunnel: ObservableTunnel?, newTunnel: ObservableTunnel?) + protected abstract fun onSelectedTunnelChanged(oldTunnel: ObservableTunnel?, newTunnel: ObservableTunnel?): Boolean fun removeOnSelectedTunnelChangedListener( listener: OnSelectedTunnelChangedListener) { |