New hearing device pairing page: ignore bonded device

The device might still in advertising mode even if it's bonded. We can
just ignore this kind of devices in the scanning result.

Bug: 307890347
Test: manual test
Change-Id: I782cc62edd4fec779f5f55444425b32a77f85e5e
This commit is contained in:
Angela Wang
2024-02-07 10:15:36 +00:00
parent 3ca9ef8edc
commit 4972c58783

View File

@@ -192,7 +192,7 @@ public class HearingDevicePairingFragment extends RestrictedDashboardFragment im
public void onDeviceBondStateChanged(@NonNull CachedBluetoothDevice cachedDevice,
int bondState) {
if (DEBUG) {
Log.d(TAG, "onDeviceBondStateChanged: " + cachedDevice.getName() + ", state = "
Log.d(TAG, "onDeviceBondStateChanged: " + cachedDevice.getDevice() + ", state = "
+ bondState);
}
if (bondState == BluetoothDevice.BOND_BONDED) {
@@ -276,13 +276,13 @@ public class HearingDevicePairingFragment extends RestrictedDashboardFragment im
}
mDevicePreferenceMap.put(cachedDevice, preference);
if (DEBUG) {
Log.d(TAG, "Add device. device: " + cachedDevice);
Log.d(TAG, "Add device. device: " + cachedDevice.getDevice());
}
}
void removeDevice(CachedBluetoothDevice cachedDevice) {
if (DEBUG) {
Log.d(TAG, "removeDevice: " + cachedDevice);
Log.d(TAG, "removeDevice: " + cachedDevice.getDevice());
}
BluetoothDevicePreference preference = mDevicePreferenceMap.remove(cachedDevice);
if (mAvailableHearingDeviceGroup != null && preference != null) {
@@ -329,10 +329,15 @@ public class HearingDevicePairingFragment extends RestrictedDashboardFragment im
CachedBluetoothDevice cachedDevice = mCachedDeviceManager.findDevice(device);
if (cachedDevice == null) {
cachedDevice = mCachedDeviceManager.addDevice(device);
} else if (cachedDevice.getBondState() == BluetoothDevice.BOND_BONDED) {
if (DEBUG) {
Log.d(TAG, "Skip this device, already bonded: " + cachedDevice.getDevice());
}
return;
}
if (cachedDevice.getHearingAidInfo() == null) {
if (DEBUG) {
Log.d(TAG, "Set hearing aid info on device: " + cachedDevice);
Log.d(TAG, "Set hearing aid info on device: " + cachedDevice.getDevice());
}
cachedDevice.setHearingAidInfo(new HearingAidInfo.Builder().build());
}
@@ -450,7 +455,7 @@ public class HearingDevicePairingFragment extends RestrictedDashboardFragment im
void discoverServices(CachedBluetoothDevice cachedDevice) {
if (DEBUG) {
Log.d(TAG, "connectGattToCheckCompatibility, device: " + cachedDevice);
Log.d(TAG, "connectGattToCheckCompatibility, device: " + cachedDevice.getDevice());
}
BluetoothGatt gatt = cachedDevice.getDevice().connectGatt(getContext(), false,
new BluetoothGattCallback() {
@@ -460,7 +465,7 @@ public class HearingDevicePairingFragment extends RestrictedDashboardFragment im
super.onConnectionStateChange(gatt, status, newState);
if (DEBUG) {
Log.d(TAG, "onConnectionStateChange, status: " + status + ", newState: "
+ newState + ", device: " + cachedDevice);
+ newState + ", device: " + cachedDevice.getDevice());
}
if (status == GATT_SUCCESS
&& newState == BluetoothProfile.STATE_CONNECTED) {
@@ -476,13 +481,14 @@ public class HearingDevicePairingFragment extends RestrictedDashboardFragment im
super.onServicesDiscovered(gatt, status);
if (DEBUG) {
Log.d(TAG, "onServicesDiscovered, status: " + status + ", device: "
+ cachedDevice);
+ cachedDevice.getDevice());
}
if (status == GATT_SUCCESS) {
if (gatt.getService(BluetoothUuid.HEARING_AID.getUuid()) != null
|| gatt.getService(BluetoothUuid.HAS.getUuid()) != null) {
if (DEBUG) {
Log.d(TAG, "compatible with Android, device: " + cachedDevice);
Log.d(TAG, "compatible with Android, device: "
+ cachedDevice.getDevice());
}
addDevice(cachedDevice);
}