summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java8
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java5
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);
}
/**