diff options
Diffstat (limited to '')
-rw-r--r-- | ui/src/main/java/com/wireguard/android/BootShutdownReceiver.kt | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/ui/src/main/java/com/wireguard/android/BootShutdownReceiver.kt b/ui/src/main/java/com/wireguard/android/BootShutdownReceiver.kt index 23775f44..2b9312a0 100644 --- a/ui/src/main/java/com/wireguard/android/BootShutdownReceiver.kt +++ b/ui/src/main/java/com/wireguard/android/BootShutdownReceiver.kt @@ -8,15 +8,27 @@ import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.util.Log +import com.wireguard.android.activity.MainActivity import com.wireguard.android.backend.WgQuickBackend +import com.wireguard.android.updater.Updater import com.wireguard.android.util.applicationScope import kotlinx.coroutines.launch class BootShutdownReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { + val action = intent.action ?: return + + if (Intent.ACTION_MY_PACKAGE_REPLACED == action && Updater.installer() == context.packageName) { + /* TODO: does not work because of restrictions placed on broadcast receivers. */ + val start = Intent(context, MainActivity::class.java) + start.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) + start.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + context.startActivity(start) + return + } + applicationScope.launch { if (Application.getBackend() !is WgQuickBackend) return@launch - val action = intent.action ?: return@launch val tunnelManager = Application.getTunnelManager() if (Intent.ACTION_BOOT_COMPLETED == action) { Log.i(TAG, "Broadcast receiver restoring state (boot)") |