diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2020-03-26 01:55:44 -0600 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2020-03-26 01:55:44 -0600 |
commit | 85dd303c88f636024ce8b32e17ff76bcb3a19911 (patch) | |
tree | 4608314368a6b72262c1f97b67bd5b1d25d9a6eb /ui/src/main/java/com/wireguard/android/BootShutdownReceiver.kt | |
parent | 2958144fd0082489a996fbc7a11572f3edbe42eb (diff) |
ui: root: rewrite in kotlin
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'ui/src/main/java/com/wireguard/android/BootShutdownReceiver.kt')
-rw-r--r-- | ui/src/main/java/com/wireguard/android/BootShutdownReceiver.kt | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/ui/src/main/java/com/wireguard/android/BootShutdownReceiver.kt b/ui/src/main/java/com/wireguard/android/BootShutdownReceiver.kt new file mode 100644 index 00000000..e9759143 --- /dev/null +++ b/ui/src/main/java/com/wireguard/android/BootShutdownReceiver.kt @@ -0,0 +1,34 @@ +/* + * 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.Backend +import com.wireguard.android.backend.WgQuickBackend +import com.wireguard.android.util.ExceptionLoggers + +class BootShutdownReceiver : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + Application.getBackendAsync().thenAccept { backend: Backend? -> + if (backend !is WgQuickBackend) return@thenAccept + val action = intent.action ?: return@thenAccept + val tunnelManager = Application.getTunnelManager() + if (Intent.ACTION_BOOT_COMPLETED == action) { + Log.i(TAG, "Broadcast receiver restoring state (boot)") + tunnelManager.restoreState(false).whenComplete(ExceptionLoggers.D) + } else if (Intent.ACTION_SHUTDOWN == action) { + Log.i(TAG, "Broadcast receiver saving state (shutdown)") + tunnelManager.saveState() + } + } + } + + companion object { + private val TAG = "WireGuard/" + BootShutdownReceiver::class.java.simpleName + } +} |