From 9a8b50baea32516e2a0919cbb6c4f4c9df0a5134 Mon Sep 17 00:00:00 2001 From: Angela Wang Date: Wed, 19 Jun 2024 06:56:52 +0000 Subject: [PATCH] Show message when no preset info is obtained from the remote device Display message when hearing aid has no presets configured. Previously, the preset item was grayed out with no explanation, causing confusion. Now, a clear message informs users that presets are not available on their device. Bug: 345112286 Test: atest BluetoothDetailsHearingAidsPresetsControllerTest Flag: EXEMPT bugfix Change-Id: Ie1ece8f08933eb28a5947e2a030888a6bc49bc9f --- res/values/strings.xml | 2 ++ ...luetoothDetailsHearingAidsPresetsController.java | 13 ++++++++----- ...oothDetailsHearingAidsPresetsControllerTest.java | 3 +++ 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index f92fd2aca84..ee06f9bef10 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -156,6 +156,8 @@ Shortcut, hearing aid compatibility Preset + + There are no presets programmed by your audiologist Couldn\u2019t update preset diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsHearingAidsPresetsController.java b/src/com/android/settings/bluetooth/BluetoothDetailsHearingAidsPresetsController.java index 564e1384779..12f904b6ae2 100644 --- a/src/com/android/settings/bluetooth/BluetoothDetailsHearingAidsPresetsController.java +++ b/src/com/android/settings/bluetooth/BluetoothDetailsHearingAidsPresetsController.java @@ -159,19 +159,22 @@ public class BluetoothDetailsHearingAidsPresetsController extends mPreference.setEnabled(mCachedDevice.isConnectedHapClientDevice()); loadAllPresetInfo(); + mPreference.setSummary(null); if (mPreference.getEntries().length == 0) { - if (DEBUG) { - Log.w(TAG, "Disable the preference since preset info size = 0"); + if (mPreference.isEnabled()) { + if (DEBUG) { + Log.w(TAG, "Disable the preference since preset info size = 0"); + } + mPreference.setEnabled(false); + mPreference.setSummary(mContext.getString( + R.string.bluetooth_hearing_aids_presets_empty_list_message)); } - mPreference.setEnabled(false); } else { int activePresetIndex = mHapClientProfile.getActivePresetIndex( mCachedDevice.getDevice()); if (activePresetIndex != BluetoothHapClient.PRESET_INDEX_UNAVAILABLE) { mPreference.setValue(Integer.toString(activePresetIndex)); mPreference.setSummary(mPreference.getEntry()); - } else { - mPreference.setSummary(null); } } } diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHearingAidsPresetsControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHearingAidsPresetsControllerTest.java index cf80a871416..36838852b8a 100644 --- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHearingAidsPresetsControllerTest.java +++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHearingAidsPresetsControllerTest.java @@ -38,6 +38,7 @@ import android.bluetooth.BluetoothHapPresetInfo; import androidx.preference.ListPreference; import androidx.preference.PreferenceCategory; +import com.android.settings.R; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.HapClientProfile; import com.android.settingslib.bluetooth.LocalBluetoothManager; @@ -215,6 +216,8 @@ public class BluetoothDetailsHearingAidsPresetsControllerTest extends assertThat(mController.getPreference()).isNotNull(); assertThat(mController.getPreference().isEnabled()).isFalse(); + assertThat(String.valueOf(mController.getPreference().getSummary())).isEqualTo( + mContext.getString(R.string.bluetooth_hearing_aids_presets_empty_list_message)); } @Test