diff options
2 files changed, 11 insertions, 2 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java index 50c6aac57e8f..3b1e4ce7e97a 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java @@ -27,8 +27,10 @@ import com.android.internal.annotations.VisibleForTesting; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.Objects; /** @@ -191,6 +193,7 @@ public class CachedBluetoothDeviceManager { log("updateHearingAidsDevices: getHearingAidProfile() is null"); return; } + final Set<Long> syncIdChangedSet = new HashSet<Long>(); for (CachedBluetoothDevice cachedDevice : mCachedDevices) { if (cachedDevice.getHiSyncId() != BluetoothHearingAid.HI_SYNC_ID_INVALID) { continue; @@ -200,9 +203,12 @@ public class CachedBluetoothDeviceManager { if (newHiSyncId != BluetoothHearingAid.HI_SYNC_ID_INVALID) { cachedDevice.setHiSyncId(newHiSyncId); - onHiSyncIdChanged(newHiSyncId); + syncIdChangedSet.add(newHiSyncId); } } + for (Long syncId : syncIdChangedSet) { + onHiSyncIdChanged(syncId); + } } /** diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java index c3bd16195140..bab3cab3795c 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java @@ -486,11 +486,14 @@ public class CachedBluetoothDeviceManagerTest { doAnswer((invocation) -> mHearingAidProfile).when(mLocalProfileManager) .getHearingAidProfile(); doAnswer((invocation) -> HISYNCID1).when(mHearingAidProfile).getHiSyncId(mDevice1); + doAnswer((invocation) -> HISYNCID1).when(mHearingAidProfile).getHiSyncId(mDevice2); mCachedDeviceManager.mCachedDevices.add(mCachedDevice1); + mCachedDeviceManager.mCachedDevices.add(mCachedDevice2); mCachedDeviceManager.updateHearingAidsDevices(mLocalProfileManager); - // Assert that the mCachedDevice1 has an updated HiSyncId. + // Assert that the mCachedDevice1 and mCachedDevice2 have an updated HiSyncId. assertThat(mCachedDevice1.getHiSyncId()).isEqualTo(HISYNCID1); + assertThat(mCachedDevice2.getHiSyncId()).isEqualTo(HISYNCID1); } /** |