40ebf8006e
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
41 lines
1.5 KiB
Java
41 lines
1.5 KiB
Java
/*
|
|
* Copyright © 2017-2019 WireGuard LLC. All Rights Reserved.
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
package com.wireguard.android;
|
|
|
|
import android.content.BroadcastReceiver;
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.util.Log;
|
|
|
|
import com.wireguard.android.backend.WgQuickBackend;
|
|
import com.wireguard.android.model.TunnelManager;
|
|
import com.wireguard.android.util.ExceptionLoggers;
|
|
import com.wireguard.util.NonNullForAll;
|
|
|
|
@NonNullForAll
|
|
public class BootShutdownReceiver extends BroadcastReceiver {
|
|
private static final String TAG = "WireGuard/" + BootShutdownReceiver.class.getSimpleName();
|
|
|
|
@Override
|
|
public void onReceive(final Context context, final Intent intent) {
|
|
Application.getBackendAsync().thenAccept(backend -> {
|
|
if (!(backend instanceof WgQuickBackend))
|
|
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();
|
|
}
|
|
});
|
|
}
|
|
}
|