35 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Kotlin
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Kotlin
		
	
	
	
	
	
| /*
 | |
|  * 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
 | |
|     }
 | |
| }
 |