HA still appears in Media device list even though it has been unpaired.
-Add mUnpairing to mark the device triggers removeBond() -For HA, once it calls removeBond(), two HA would be unpaired. It causes the incorrect state if we do main/sub devices switching. Bug: 198124571 Test: manual test Change-Id: I4ed5db2bd01f4b4e8f246ed3e8f74e24149571f9
This commit is contained in:
@@ -106,6 +106,7 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
|
||||
private boolean mIsA2dpProfileConnectedFail = false;
|
||||
private boolean mIsHeadsetProfileConnectedFail = false;
|
||||
private boolean mIsHearingAidProfileConnectedFail = false;
|
||||
private boolean mUnpairing;
|
||||
// Group second device for Hearing Aid
|
||||
private CachedBluetoothDevice mSubDevice;
|
||||
@VisibleForTesting
|
||||
@@ -142,6 +143,7 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
|
||||
fillData();
|
||||
mHiSyncId = BluetoothHearingAid.HI_SYNC_ID_INVALID;
|
||||
initDrawableCache();
|
||||
mUnpairing = false;
|
||||
}
|
||||
|
||||
private void initDrawableCache() {
|
||||
@@ -402,6 +404,7 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
|
||||
if (state != BluetoothDevice.BOND_NONE) {
|
||||
final BluetoothDevice dev = mDevice;
|
||||
if (dev != null) {
|
||||
mUnpairing = true;
|
||||
final boolean successful = dev.removeBond();
|
||||
if (successful) {
|
||||
releaseLruCache();
|
||||
@@ -1243,4 +1246,8 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
|
||||
void releaseLruCache() {
|
||||
mDrawableCache.evictAll();
|
||||
}
|
||||
|
||||
boolean getUnpairing() {
|
||||
return mUnpairing;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -180,6 +180,9 @@ public class HearingAidDeviceManager {
|
||||
break;
|
||||
case BluetoothProfile.STATE_DISCONNECTED:
|
||||
mainDevice = findMainDevice(cachedDevice);
|
||||
if (cachedDevice.getUnpairing()) {
|
||||
return true;
|
||||
}
|
||||
if (mainDevice != null) {
|
||||
// When main device exists, receiving sub device disconnection
|
||||
// To update main device UI
|
||||
|
||||
Reference in New Issue
Block a user