From 0f3135978ca15ca20a61b1d5e01e31b541df2bec Mon Sep 17 00:00:00 2001 From: andrekir Date: Sat, 12 Feb 2022 18:55:42 -0300 Subject: [PATCH] update CompanionDevice Bluetooth bonding --- .../com/geeksville/mesh/ui/SettingsFragment.kt | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/geeksville/mesh/ui/SettingsFragment.kt b/app/src/main/java/com/geeksville/mesh/ui/SettingsFragment.kt index 116d5f3ea..199e55bba 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/SettingsFragment.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/SettingsFragment.kt @@ -883,7 +883,6 @@ class SettingsFragment : ScreenFragment("Settings"), Logging { deviceManager.associate( pairingRequest, object : CompanionDeviceManager.Callback() { - override fun onDeviceFound(chooserLauncher: IntentSender) { debug("Found one device - enabling changeRadioButton") binding.changeRadioButton.isEnabled = true @@ -914,8 +913,6 @@ class SettingsFragment : ScreenFragment("Settings"), Logging { updateDevicesButtons(devices) startCompanionScan() } - - startCompanionScan() } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { @@ -1041,17 +1038,22 @@ class SettingsFragment : ScreenFragment("Settings"), Logging { } } + @SuppressLint("MissingPermission") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O + if (hasCompanionDeviceApi && myActivity.hasConnectPermission() && requestCode == MainActivity.SELECT_DEVICE_REQUEST_CODE && resultCode == Activity.RESULT_OK ) { val deviceToPair: BluetoothDevice = data?.getParcelableExtra(CompanionDeviceManager.EXTRA_DEVICE)!! - if (deviceToPair.bondState != BOND_BONDED) { - deviceToPair.createBond() - } - scanModel.changeScanSelection(myActivity, "x${deviceToPair.address}") + scanModel.onSelected( + myActivity, + BTScanModel.DeviceListEntry( + deviceToPair.name, + "x${deviceToPair.address}", + deviceToPair.bondState == BOND_BONDED + ) + ) } else { super.onActivityResult(requestCode, resultCode, data) }