diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/manage/BluetoothTethering.kt b/mobile/src/main/java/be/mygod/vpnhotspot/manage/BluetoothTethering.kt index 3e49495c..cedc9c0a 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/manage/BluetoothTethering.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/manage/BluetoothTethering.kt @@ -109,6 +109,7 @@ class BluetoothTethering(context: Context, val stateListener: () -> Unit) : private val receiver = broadcastReceiver { _, _ -> stateListener() } fun ensureInit(context: Context) { + activeFailureCause = null if (pan == null) try { pan = pan(context, this) } catch (e: ReflectiveOperationException) { diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetherManager.kt b/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetherManager.kt index f2f9fa67..55dd363f 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetherManager.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetherManager.kt @@ -297,11 +297,14 @@ sealed class TetherManager(protected val parent: TetheringFragment) : Manager(), parent.viewLifecycleOwner.lifecycle.addObserver(this) } - fun ensureInit(context: Context) = tethering.ensureInit(context) + fun ensureInit(context: Context) { + tethering.ensureInit(context) + onTetheringStarted() // force flush + } override fun onResume(owner: LifecycleOwner) { if (!BuildCompat.isAtLeastS() || parent.requireContext().checkSelfPermission( Manifest.permission.BLUETOOTH_CONNECT) == PackageManager.PERMISSION_GRANTED) { - ensureInit(parent.requireContext()) + tethering.ensureInit(parent.requireContext()) } else if (parent.shouldShowRequestPermissionRationale(Manifest.permission.BLUETOOTH_CONNECT)) { parent.requestBluetooth.launch(Manifest.permission.BLUETOOTH_CONNECT) }