diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsHearingAidsPresetsController.java b/src/com/android/settings/bluetooth/BluetoothDetailsHearingAidsPresetsController.java index 12f904b6ae2..f7ccc610870 100644 --- a/src/com/android/settings/bluetooth/BluetoothDetailsHearingAidsPresetsController.java +++ b/src/com/android/settings/bluetooth/BluetoothDetailsHearingAidsPresetsController.java @@ -276,7 +276,8 @@ public class BluetoothDetailsHearingAidsPresetsController extends return; } List infoList = mHapClientProfile.getAllPresetInfo( - mCachedDevice.getDevice()); + mCachedDevice.getDevice()).stream().filter( + BluetoothHapPresetInfo::isAvailable).toList(); CharSequence[] presetNames = new CharSequence[infoList.size()]; CharSequence[] presetIndexes = new CharSequence[infoList.size()]; for (int i = 0; i < infoList.size(); i++) { diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHearingAidsPresetsControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHearingAidsPresetsControllerTest.java index 36838852b8a..7c865f340a6 100644 --- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHearingAidsPresetsControllerTest.java +++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHearingAidsPresetsControllerTest.java @@ -222,7 +222,7 @@ public class BluetoothDetailsHearingAidsPresetsControllerTest extends @Test public void refresh_validPresetInfo_preferenceEnabled() { - BluetoothHapPresetInfo info = getTestPresetInfo(); + BluetoothHapPresetInfo info = getTestPresetInfo(true); when(mHapClientProfile.getAllPresetInfo(mDevice)).thenReturn(List.of(info)); mController.refresh(); @@ -233,7 +233,7 @@ public class BluetoothDetailsHearingAidsPresetsControllerTest extends @Test public void refresh_invalidActivePresetIndex_summaryIsNull() { - BluetoothHapPresetInfo info = getTestPresetInfo(); + BluetoothHapPresetInfo info = getTestPresetInfo(true); when(mHapClientProfile.getAllPresetInfo(mDevice)).thenReturn(List.of(info)); when(mHapClientProfile.getActivePresetIndex(mDevice)).thenReturn(PRESET_INDEX_UNAVAILABLE); @@ -245,7 +245,7 @@ public class BluetoothDetailsHearingAidsPresetsControllerTest extends @Test public void refresh_validActivePresetIndex_summaryIsNotNull() { - BluetoothHapPresetInfo info = getTestPresetInfo(); + BluetoothHapPresetInfo info = getTestPresetInfo(true); when(mHapClientProfile.getAllPresetInfo(mDevice)).thenReturn(List.of(info)); when(mHapClientProfile.getActivePresetIndex(mDevice)).thenReturn(TEST_PRESET_INDEX); @@ -265,10 +265,30 @@ public class BluetoothDetailsHearingAidsPresetsControllerTest extends verify(mHapClientProfile).selectPreset(mDevice, TEST_PRESET_INDEX); } - private BluetoothHapPresetInfo getTestPresetInfo() { + @Test + public void loadAllPresetInfo_unavailablePreset_notAddedToEntries() { + BluetoothHapPresetInfo info = getTestPresetInfo(false); + when(mHapClientProfile.getAllPresetInfo(mDevice)).thenReturn(List.of(info)); + + mController.refresh(); + + assertThat(mController.getPreference().getEntries().length).isEqualTo(0); + } + + @Test + public void loadAllPresetInfo_availablePreset_addedToEntries() { + BluetoothHapPresetInfo info = getTestPresetInfo(true); + when(mHapClientProfile.getAllPresetInfo(mDevice)).thenReturn(List.of(info)); + + mController.refresh(); + + assertThat(mController.getPreference().getEntries().length).isEqualTo(1); + } + private BluetoothHapPresetInfo getTestPresetInfo(boolean available) { BluetoothHapPresetInfo info = mock(BluetoothHapPresetInfo.class); when(info.getName()).thenReturn(TEST_PRESET_NAME); when(info.getIndex()).thenReturn(TEST_PRESET_INDEX); + when(info.isAvailable()).thenReturn(available); return info; }