summaryrefslogtreecommitdiffhomepage
path: root/app/src/main/java/com/wireguard/android/BootShutdownReceiver.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/com/wireguard/android/BootShutdownReceiver.java')
-rw-r--r--app/src/main/java/com/wireguard/android/BootShutdownReceiver.java28
1 files changed, 28 insertions, 0 deletions
diff --git a/app/src/main/java/com/wireguard/android/BootShutdownReceiver.java b/app/src/main/java/com/wireguard/android/BootShutdownReceiver.java
new file mode 100644
index 00000000..37de83c0
--- /dev/null
+++ b/app/src/main/java/com/wireguard/android/BootShutdownReceiver.java
@@ -0,0 +1,28 @@
+package com.wireguard.android;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+
+import com.wireguard.android.model.TunnelManager;
+import com.wireguard.android.util.ExceptionLoggers;
+
+public class BootShutdownReceiver extends BroadcastReceiver {
+ private static final String TAG = BootShutdownReceiver.class.getSimpleName();
+
+ @Override
+ public void onReceive(final Context context, final Intent intent) {
+ final String action = intent.getAction();
+ if (action == null)
+ return;
+ final TunnelManager tunnelManager = Application.getComponent().getTunnelManager();
+ if (Intent.ACTION_BOOT_COMPLETED.equals(action)) {
+ Log.d(TAG, "Broadcast receiver restoring state (boot)");
+ tunnelManager.restoreState().whenComplete(ExceptionLoggers.D);
+ } else if (Intent.ACTION_SHUTDOWN.equals(action)) {
+ Log.d(TAG, "Broadcast receiver saving state (shutdown)");
+ tunnelManager.saveState().whenComplete(ExceptionLoggers.D);
+ }
+ }
+}