Skip to content

Commit 720079b

Browse files
committed
TunnelToggleActivity: suppress errors from prepare() in lockdown mode
Exception java.lang.IllegalStateException: Unavailable in lockdown mode at android.os.Parcel.createExceptionOrNull (Parcel.java:3031) at android.os.Parcel.createException (Parcel.java:3007) at android.os.Parcel.readException (Parcel.java:2990) at android.os.Parcel.readException (Parcel.java:2932) at android.net.IVpnManager$Stub$Proxy.prepareVpn (IVpnManager.java:1064) at android.net.VpnService.prepare (VpnService.java:290) at com.wireguard.android.activity.TunnelToggleActivity$onCreate$1.invokeSuspend (TunnelToggleActivity.kt:44) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith (ContinuationImpl.kt:8) at kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith (DispatchedContinuation.kt:155) at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable (Cancellable.kt:12) at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable$default (Cancellable.kt:12) at kotlinx.coroutines.CoroutineStart.invoke (CoroutineStart.java:80) at kotlinx.coroutines.AbstractCoroutine.start (AbstractCoroutine.kt:80) at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch (BuildersKt__Builders_common.kt:52) at kotlinx.coroutines.BuildersKt.launch (Builders.kt:52) at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch$default (BuildersKt__Builders_common.kt:52) at kotlinx.coroutines.BuildersKt.launch$default (Builders.kt:52) at com.wireguard.android.activity.TunnelToggleActivity.onCreate (TunnelToggleActivity.kt:14) at android.app.Activity.performCreate (Activity.java:8591) at android.app.Activity.performCreate (Activity.java:8570) at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1384) at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:4150) at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:4325) at android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:101) at android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2574) at android.os.Handler.dispatchMessage (Handler.java:106) at android.os.Looper.loopOnce (Looper.java:226) at android.os.Looper.loop (Looper.java:313) at android.app.ActivityThread.main (ActivityThread.java:8762) at java.lang.reflect.Method.invoke at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:604) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1067) Signed-off-by: Jason A. Donenfeld <[email protected]>
1 parent aa68b51 commit 720079b

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

ui/src/main/java/com/wireguard/android/activity/TunnelToggleActivity.kt

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,14 @@ class TunnelToggleActivity : AppCompatActivity() {
5050
super.onCreate(savedInstanceState)
5151
lifecycleScope.launch {
5252
if (Application.getBackend() is GoBackend) {
53-
val intent = GoBackend.VpnService.prepare(this@TunnelToggleActivity)
54-
if (intent != null) {
55-
permissionActivityResultLauncher.launch(intent)
56-
return@launch
53+
try {
54+
val intent = GoBackend.VpnService.prepare(this@TunnelToggleActivity)
55+
if (intent != null) {
56+
permissionActivityResultLauncher.launch(intent)
57+
return@launch
58+
}
59+
} catch (e: Exception) {
60+
Toast.makeText(this@TunnelToggleActivity, ErrorMessages[e], Toast.LENGTH_LONG).show()
5761
}
5862
}
5963
toggleTunnelWithPermissionsResult()

0 commit comments

Comments
 (0)