From cf30ff41891e06333ab4eefcaa7a651a5ac29726 Mon Sep 17 00:00:00 2001 From: Jamil Date: Fri, 2 Feb 2024 13:31:57 -0800 Subject: [PATCH] fix(android): Load library before starting tunnel only (#3539) When AlwaysOnVpn is configured, the tunnel can run without MainActivity, so the library is never loaded. Fixes #3532 --- .../android/core/presentation/MainActivity.kt | 11 +++-------- .../java/dev/firezone/android/tunnel/TunnelService.kt | 1 + 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/kotlin/android/app/src/main/java/dev/firezone/android/core/presentation/MainActivity.kt b/kotlin/android/app/src/main/java/dev/firezone/android/core/presentation/MainActivity.kt index 263d913c2..93c6764af 100644 --- a/kotlin/android/app/src/main/java/dev/firezone/android/core/presentation/MainActivity.kt +++ b/kotlin/android/app/src/main/java/dev/firezone/android/core/presentation/MainActivity.kt @@ -8,17 +8,12 @@ import dev.firezone.android.R @AndroidEntryPoint internal class MainActivity : AppCompatActivity(R.layout.activity_main) { - // fail fast if the native library is not loaded - companion object { - init { - System.loadLibrary("connlib") - } - } - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) } @Deprecated("Deprecated in Java") - override fun onBackPressed() {} + override fun onBackPressed() { + super.onBackPressed() + } } diff --git a/kotlin/android/app/src/main/java/dev/firezone/android/tunnel/TunnelService.kt b/kotlin/android/app/src/main/java/dev/firezone/android/tunnel/TunnelService.kt index 0dd12a2cf..ff7d90794 100644 --- a/kotlin/android/app/src/main/java/dev/firezone/android/tunnel/TunnelService.kt +++ b/kotlin/android/app/src/main/java/dev/firezone/android/tunnel/TunnelService.kt @@ -178,6 +178,7 @@ class TunnelService : VpnService() { } else if (config.token != null) { onTunnelStateUpdate(Tunnel.State.Connecting) updateStatusNotification("Status: Connecting...") + System.loadLibrary("connlib") sessionPtr = TunnelSession.connect(