From b5d7e64bc40dabbb99a33b9c934fa03e0a725fa3 Mon Sep 17 00:00:00 2001 From: Mygod Date: Mon, 11 Jul 2022 17:13:48 -0400 Subject: [PATCH] Handle fallback Bluetooth starting --- .../java/be/mygod/vpnhotspot/manage/BluetoothTethering.kt | 5 +++-- .../main/java/be/mygod/vpnhotspot/manage/TetherManager.kt | 2 +- .../java/be/mygod/vpnhotspot/manage/TetheringTileService.kt | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) 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 ac87da09..406ec471 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/manage/BluetoothTethering.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/manage/BluetoothTethering.kt @@ -110,12 +110,13 @@ class BluetoothTethering(context: Context, private val adapter: BluetoothAdapter */ @SuppressLint("MissingPermission") @RequiresApi(24) - fun start(callback: TetheringManager.StartTetheringCallback) { + fun start(callback: TetheringManager.StartTetheringCallback, context: Context) { if (pendingCallback == null) try { if (adapter.state == BluetoothAdapter.STATE_OFF) { registerBluetoothStateListener(BluetoothTethering) pendingCallback = callback - adapter.enable() + @Suppress("DEPRECATION") + if (!adapter.enable()) context.startActivity(Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)) } else TetheringManager.startTethering(TetheringManager.TETHERING_BLUETOOTH, true, callback) } catch (e: SecurityException) { SmartSnackbar.make(e.readableMessage).shortToast().show() 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 0974e76e..92a6ae29 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetherManager.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetherManager.kt @@ -334,7 +334,7 @@ sealed class TetherManager(protected val parent: TetheringFragment) : Manager(), if (tethering.active == null) tethering.activeFailureCause?.readableMessage else null, baseError).joinToString("\n") - override fun start() = tethering.start(this) + override fun start() = tethering.start(this, parent.requireContext()) override fun stop() { tethering.stop(this::onException) onTetheringStarted() // force flush state diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetheringTileService.kt b/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetheringTileService.kt index 0c9d9197..b79f1e79 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetheringTileService.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetheringTileService.kt @@ -153,7 +153,7 @@ sealed class TetheringTileService : IpNeighbourMonitoringTileService(), Tetherin override val labelString get() = R.string.tethering_manage_bluetooth override val tetherType get() = TetherType.BLUETOOTH - override fun start() = tethering!!.start(this) + override fun start() = tethering!!.start(this, this) override fun stop() { tethering!!.stop(this::onException) onTetheringStarted() // force flush state