Loading packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java +9 −1 Original line number Original line Diff line number Diff line Loading @@ -1518,10 +1518,15 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice> * list. * list. */ */ public void switchMemberDeviceContent(CachedBluetoothDevice newMainDevice) { public void switchMemberDeviceContent(CachedBluetoothDevice newMainDevice) { // Backup from main device // Remove the sub device from mMemberDevices first to prevent hash mismatch problem due // to mDevice switch removeMemberDevice(newMainDevice); // Backup from current main device final BluetoothDevice tmpDevice = mDevice; final BluetoothDevice tmpDevice = mDevice; final short tmpRssi = mRssi; final short tmpRssi = mRssi; final boolean tmpJustDiscovered = mJustDiscovered; final boolean tmpJustDiscovered = mJustDiscovered; // Set main device from sub device // Set main device from sub device release(); release(); mDevice = newMainDevice.mDevice; mDevice = newMainDevice.mDevice; Loading @@ -1535,6 +1540,9 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice> newMainDevice.mRssi = tmpRssi; newMainDevice.mRssi = tmpRssi; newMainDevice.mJustDiscovered = tmpJustDiscovered; newMainDevice.mJustDiscovered = tmpJustDiscovered; newMainDevice.fillData(); newMainDevice.fillData(); // Add the sub device back into mMemberDevices with correct hash addMemberDevice(newMainDevice); } } /** /** Loading packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidDeviceManager.java +8 −0 Original line number Original line Diff line number Diff line Loading @@ -186,6 +186,14 @@ public class HearingAidDeviceManager { if (cachedDevice.getHiSyncId() != hiSyncId) { if (cachedDevice.getHiSyncId() != hiSyncId) { continue; continue; } } // The remote device supports CSIP, the other ear should be processed as a member // device. Ignore hiSyncId grouping from ASHA here. if (cachedDevice.getProfiles().stream().anyMatch( profile -> profile instanceof CsipSetCoordinatorProfile)) { continue; } if (firstMatchedIndex == -1) { if (firstMatchedIndex == -1) { // Found the first one // Found the first one firstMatchedIndex = i; firstMatchedIndex = i; Loading Loading
packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java +9 −1 Original line number Original line Diff line number Diff line Loading @@ -1518,10 +1518,15 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice> * list. * list. */ */ public void switchMemberDeviceContent(CachedBluetoothDevice newMainDevice) { public void switchMemberDeviceContent(CachedBluetoothDevice newMainDevice) { // Backup from main device // Remove the sub device from mMemberDevices first to prevent hash mismatch problem due // to mDevice switch removeMemberDevice(newMainDevice); // Backup from current main device final BluetoothDevice tmpDevice = mDevice; final BluetoothDevice tmpDevice = mDevice; final short tmpRssi = mRssi; final short tmpRssi = mRssi; final boolean tmpJustDiscovered = mJustDiscovered; final boolean tmpJustDiscovered = mJustDiscovered; // Set main device from sub device // Set main device from sub device release(); release(); mDevice = newMainDevice.mDevice; mDevice = newMainDevice.mDevice; Loading @@ -1535,6 +1540,9 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice> newMainDevice.mRssi = tmpRssi; newMainDevice.mRssi = tmpRssi; newMainDevice.mJustDiscovered = tmpJustDiscovered; newMainDevice.mJustDiscovered = tmpJustDiscovered; newMainDevice.fillData(); newMainDevice.fillData(); // Add the sub device back into mMemberDevices with correct hash addMemberDevice(newMainDevice); } } /** /** Loading
packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidDeviceManager.java +8 −0 Original line number Original line Diff line number Diff line Loading @@ -186,6 +186,14 @@ public class HearingAidDeviceManager { if (cachedDevice.getHiSyncId() != hiSyncId) { if (cachedDevice.getHiSyncId() != hiSyncId) { continue; continue; } } // The remote device supports CSIP, the other ear should be processed as a member // device. Ignore hiSyncId grouping from ASHA here. if (cachedDevice.getProfiles().stream().anyMatch( profile -> profile instanceof CsipSetCoordinatorProfile)) { continue; } if (firstMatchedIndex == -1) { if (firstMatchedIndex == -1) { // Found the first one // Found the first one firstMatchedIndex = i; firstMatchedIndex = i; Loading