aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/app/src/main/java/com/wireguard/android/activity/BaseActivity.java
diff options
context:
space:
mode:
authorEric Kuck <eric@bluelinelabs.com>2018-07-25 19:30:34 -0500
committerJason A. Donenfeld <Jason@zx2c4.com>2018-07-26 05:17:43 +0200
commit9652fe99df68db5c483ea8e170f6e09f06a5e0d1 (patch)
treed88fa5ef4fa4e53d605e6bce9d788960a80642de /app/src/main/java/com/wireguard/android/activity/BaseActivity.java
parentApplication: use proper completablefuture for backend (diff)
downloadwireguard-android-9652fe99df68db5c483ea8e170f6e09f06a5e0d1.tar.xz
wireguard-android-9652fe99df68db5c483ea8e170f6e09f06a5e0d1.zip
TunnelDetailFragment now restores state correctly after process death
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'app/src/main/java/com/wireguard/android/activity/BaseActivity.java')
-rw-r--r--app/src/main/java/com/wireguard/android/activity/BaseActivity.java13
1 files changed, 7 insertions, 6 deletions
diff --git a/app/src/main/java/com/wireguard/android/activity/BaseActivity.java b/app/src/main/java/com/wireguard/android/activity/BaseActivity.java
index 51357d89..57c70367 100644
--- a/app/src/main/java/com/wireguard/android/activity/BaseActivity.java
+++ b/app/src/main/java/com/wireguard/android/activity/BaseActivity.java
@@ -13,7 +13,6 @@ import android.support.annotation.Nullable;
import com.wireguard.android.Application;
import com.wireguard.android.model.Tunnel;
-import com.wireguard.android.model.TunnelManager;
import java.util.Objects;
@@ -39,15 +38,17 @@ public abstract class BaseActivity extends ThemeChangeAwareActivity {
@Override
protected void onCreate(@Nullable final Bundle savedInstanceState) {
// Restore the saved tunnel if there is one; otherwise grab it from the arguments.
- String savedTunnelName = null;
+ final String savedTunnelName;
if (savedInstanceState != null)
savedTunnelName = savedInstanceState.getString(KEY_SELECTED_TUNNEL);
else if (getIntent() != null)
savedTunnelName = getIntent().getStringExtra(KEY_SELECTED_TUNNEL);
- if (savedTunnelName != null) {
- final TunnelManager tunnelManager = Application.getTunnelManager();
- selectedTunnel = tunnelManager.getTunnels().get(savedTunnelName);
- }
+ else
+ savedTunnelName = null;
+
+ if (savedTunnelName != null)
+ Application.getTunnelManager().getTunnels()
+ .thenAccept(tunnels -> setSelectedTunnel(tunnels.get(savedTunnelName)));
// The selected tunnel must be set before the superclass method recreates fragments.
super.onCreate(savedInstanceState);