diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-06-14 04:59:24 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-06-14 05:06:18 +0200 |
commit | e8891d775b613781529e2f86cb063ee2f16a229f (patch) | |
tree | 069ddd86ba338411653a5c26e6b3570b6f507fbf /app/src/main/java/com/wireguard/android/BootShutdownReceiver.java | |
parent | Version bump (diff) | |
download | wireguard-android-e8891d775b613781529e2f86cb063ee2f16a229f.tar.xz wireguard-android-e8891d775b613781529e2f86cb063ee2f16a229f.zip |
global: supply backend asynchronously
We can't block for IO, so move everything to async workers or to
callbacks.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'app/src/main/java/com/wireguard/android/BootShutdownReceiver.java')
-rw-r--r-- | app/src/main/java/com/wireguard/android/BootShutdownReceiver.java | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/app/src/main/java/com/wireguard/android/BootShutdownReceiver.java b/app/src/main/java/com/wireguard/android/BootShutdownReceiver.java index f3ed3f08..fd7aa9f9 100644 --- a/app/src/main/java/com/wireguard/android/BootShutdownReceiver.java +++ b/app/src/main/java/com/wireguard/android/BootShutdownReceiver.java @@ -20,18 +20,20 @@ public class BootShutdownReceiver extends BroadcastReceiver { @Override public void onReceive(final Context context, final Intent intent) { - if (Application.getBackendType() != WgQuickBackend.class) - return; - final String action = intent.getAction(); - if (action == null) - return; - final TunnelManager tunnelManager = Application.getTunnelManager(); - if (Intent.ACTION_BOOT_COMPLETED.equals(action)) { - Log.i(TAG, "Broadcast receiver restoring state (boot)"); - tunnelManager.restoreState(false).whenComplete(ExceptionLoggers.D); - } else if (Intent.ACTION_SHUTDOWN.equals(action)) { - Log.i(TAG, "Broadcast receiver saving state (shutdown)"); - tunnelManager.saveState(); - } + Application.onHaveBackend(backend -> { + if (backend.getClass() != WgQuickBackend.class) + return; + final String action = intent.getAction(); + if (action == null) + return; + final TunnelManager tunnelManager = Application.getTunnelManager(); + if (Intent.ACTION_BOOT_COMPLETED.equals(action)) { + Log.i(TAG, "Broadcast receiver restoring state (boot)"); + tunnelManager.restoreState(false).whenComplete(ExceptionLoggers.D); + } else if (Intent.ACTION_SHUTDOWN.equals(action)) { + Log.i(TAG, "Broadcast receiver saving state (shutdown)"); + tunnelManager.saveState(); + } + }); } } |