From 9c5fc5e99f72f4f12b7ca84acc7edef66d713425 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach <andreas@schildbach.de> Date: Sat, 17 Aug 2019 22:20:33 +0200 Subject: [PATCH] ScannerFragment: Always show paired card10s, no matter if it's caught in the scan. That way, we can unpair even if the card10 isn't available any more. --- .../badge/card10/scanner/ScannerFragment.kt | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/de/ccc/events/badge/card10/scanner/ScannerFragment.kt b/app/src/main/java/de/ccc/events/badge/card10/scanner/ScannerFragment.kt index 8721fb0..f338547 100644 --- a/app/src/main/java/de/ccc/events/badge/card10/scanner/ScannerFragment.kt +++ b/app/src/main/java/de/ccc/events/badge/card10/scanner/ScannerFragment.kt @@ -48,18 +48,21 @@ class ScannerFragment : Fragment() { val callback = object : ScanCallback() { override fun onScanResult(callbackType: Int, result: ScanResult) { val device = result.device - if (device.address.startsWith(CARD10_BLUETOOTH_MAC_PREFIX, true)) { - listAdapter.put( - Device( - btMac = device.address, - name = device.name, - paired = device.bondState == BluetoothDevice.BOND_BONDED - ) - ) - } + if (device.address.startsWith(CARD10_BLUETOOTH_MAC_PREFIX, true)) + putToListAdapter(device) } } + private fun putToListAdapter(device: BluetoothDevice) { + listAdapter.put( + Device( + btMac = device.address, + name = device.name, + paired = device.bondState == BluetoothDevice.BOND_BONDED + ) + ) + } + val receiver = object : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { System.out.println("===== onReceive " + intent) @@ -71,6 +74,14 @@ class ScannerFragment : Fragment() { super.onCreate(savedInstanceState) activity?.registerReceiver(receiver, IntentFilter(BluetoothDevice.ACTION_BOND_STATE_CHANGED)) bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); + for (device in bluetoothAdapter.bondedDevices.filter { + it.address.startsWith( + CARD10_BLUETOOTH_MAC_PREFIX, + true + ) + }) { + putToListAdapter(device) + } bluetoothAdapter.bluetoothLeScanner.startScan(callback) } -- GitLab