diff options
author | 2024-04-19 19:13:19 +0000 | |
---|---|---|
committer | 2024-04-19 19:13:19 +0000 | |
commit | dc07a3c90a08bc932541ee4335b5d1bf4718e5be (patch) | |
tree | 864b6791bfb96d8bd4843a3c6f1e34ad3093fb9d | |
parent | bfc69cd32ef3a539ff399562f7592bb10d1cfc0c (diff) |
Revert "Do not need to startDiscovery if a bound device need to be assoicated."
This reverts commit bfc69cd32ef3a539ff399562f7592bb10d1cfc0c.
Reason for revert: Likely culprit for b/335529158. Will be verifying through ABTD for verification and before submitting the culprit.
Change-Id: I90c2d37681fa6dc368fffb48edf137cf08483785
-rw-r--r-- | packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceDiscoveryService.java | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceDiscoveryService.java b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceDiscoveryService.java index a0ebbfefcef1..65bbb6fc8821 100644 --- a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceDiscoveryService.java +++ b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceDiscoveryService.java @@ -197,12 +197,7 @@ public class CompanionDeviceDiscoveryService extends Service { filter(allFilters, BluetoothLeDeviceFilter.class); final List<WifiDeviceFilter> wifiFilters = filter(allFilters, WifiDeviceFilter.class); - // No need to startDiscovery if the device is already bound or connected for - // singleDevice dialog. - if (checkBoundDevicesIfNeeded(request, btFilters)) { - stopSelf(); - return; - } + checkBoundDevicesIfNeeded(request, btFilters); // If no filters are specified: look for everything. final boolean forceStartScanningAll = isEmpty(allFilters); @@ -262,37 +257,33 @@ public class CompanionDeviceDiscoveryService extends Service { stopSelf(); } - private boolean checkBoundDevicesIfNeeded(@NonNull AssociationRequest request, + private void checkBoundDevicesIfNeeded(@NonNull AssociationRequest request, @NonNull List<BluetoothDeviceFilter> btFilters) { // If filtering to get single device by mac address, also search in the set of already // bonded devices to allow linking those directly - if (btFilters.isEmpty() || !request.isSingleDevice()) return false; + if (btFilters.isEmpty() || !request.isSingleDevice()) return; final BluetoothDeviceFilter singleMacAddressFilter = find(btFilters, filter -> !TextUtils.isEmpty(filter.getAddress())); - if (singleMacAddressFilter == null) return false; + if (singleMacAddressFilter == null) return; - return findAndReportMatches(mBtAdapter.getBondedDevices(), btFilters) - || findAndReportMatches(mBtManager.getConnectedDevices( - BluetoothProfile.GATT), btFilters) - || findAndReportMatches(mBtManager.getConnectedDevices( - BluetoothProfile.GATT_SERVER), btFilters); + findAndReportMatches(mBtAdapter.getBondedDevices(), btFilters); + findAndReportMatches(mBtManager.getConnectedDevices(BluetoothProfile.GATT), btFilters); + findAndReportMatches( + mBtManager.getConnectedDevices(BluetoothProfile.GATT_SERVER), btFilters); } - private boolean findAndReportMatches(@Nullable Collection<BluetoothDevice> devices, + private void findAndReportMatches(@Nullable Collection<BluetoothDevice> devices, @NonNull List<BluetoothDeviceFilter> filters) { - if (devices == null) return false; + if (devices == null) return; for (BluetoothDevice device : devices) { final DeviceFilterPair<BluetoothDevice> match = findMatch(device, filters); if (match != null) { onDeviceFound(match); - return true; } } - - return false; } private BluetoothBroadcastReceiver startBtScanningIfNeeded( |