From ad4b86901a45cd23c6ad72cb18eeccbe2c3cd68c Mon Sep 17 00:00:00 2001 From: jasonwshsu Date: Wed, 24 Apr 2024 15:07:21 +0800 Subject: Update spinner style for preset info * Custom view and drop down view to have preset title * Move drop down view vertical location to below spinner * Expand drop down view width to align with spinner * Add missing preset update when active device changed * Other UI details fine-tuning Bug: 336662602 Test: check UI Flag: EXEMPT resource only update Change-Id: I0a68e43f6f78195604eb5e7b91eaf8b8427c9a13 --- .../hearing_devices_preset_spinner_background.xml | 4 +- .../hearing_devices_preset_dropdown_item.xml | 25 ++++++++++++ .../hearing_devices_preset_spinner_selected.xml | 46 ++++++++++++++++++++++ .../res/layout/hearing_devices_tile_dialog.xml | 13 ++++-- packages/SystemUI/res/values/dimens.xml | 4 +- packages/SystemUI/res/values/strings.xml | 4 +- .../hearingaid/HearingDevicesDialogDelegate.java | 24 +++++++++-- 7 files changed, 108 insertions(+), 12 deletions(-) create mode 100644 packages/SystemUI/res/layout/hearing_devices_preset_dropdown_item.xml create mode 100644 packages/SystemUI/res/layout/hearing_devices_preset_spinner_selected.xml diff --git a/packages/SystemUI/res/drawable/hearing_devices_preset_spinner_background.xml b/packages/SystemUI/res/drawable/hearing_devices_preset_spinner_background.xml index 6e6e032ef2c5..c83b6d38a0e1 100644 --- a/packages/SystemUI/res/drawable/hearing_devices_preset_spinner_background.xml +++ b/packages/SystemUI/res/drawable/hearing_devices_preset_spinner_background.xml @@ -30,8 +30,8 @@ android:end="20dp" android:gravity="end|center_vertical"> diff --git a/packages/SystemUI/res/layout/hearing_devices_preset_dropdown_item.xml b/packages/SystemUI/res/layout/hearing_devices_preset_dropdown_item.xml new file mode 100644 index 000000000000..1d9307ba20ed --- /dev/null +++ b/packages/SystemUI/res/layout/hearing_devices_preset_dropdown_item.xml @@ -0,0 +1,25 @@ + + + \ No newline at end of file diff --git a/packages/SystemUI/res/layout/hearing_devices_preset_spinner_selected.xml b/packages/SystemUI/res/layout/hearing_devices_preset_spinner_selected.xml new file mode 100644 index 000000000000..77172ca8f90e --- /dev/null +++ b/packages/SystemUI/res/layout/hearing_devices_preset_spinner_selected.xml @@ -0,0 +1,46 @@ + + + + + + \ No newline at end of file diff --git a/packages/SystemUI/res/layout/hearing_devices_tile_dialog.xml b/packages/SystemUI/res/layout/hearing_devices_tile_dialog.xml index 8e1d0a57100c..2bf6f80c32d0 100644 --- a/packages/SystemUI/res/layout/hearing_devices_tile_dialog.xml +++ b/packages/SystemUI/res/layout/hearing_devices_tile_dialog.xml @@ -17,7 +17,6 @@ 350dp + 12dp 72dp - 24dp 20dp - 80dp + 15dp 24dp 28dp diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index 6df48a0d25fd..a1e92dca7e39 100644 --- a/packages/SystemUI/res/values/strings.xml +++ b/packages/SystemUI/res/values/strings.xml @@ -911,8 +911,10 @@ Pair new device Click to pair new device - + Couldn\'t update preset + + Preset Unblock device microphone? diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/hearingaid/HearingDevicesDialogDelegate.java b/packages/SystemUI/src/com/android/systemui/accessibility/hearingaid/HearingDevicesDialogDelegate.java index 7b5a09cb3848..28dd2338ff2b 100644 --- a/packages/SystemUI/src/com/android/systemui/accessibility/hearingaid/HearingDevicesDialogDelegate.java +++ b/packages/SystemUI/src/com/android/systemui/accessibility/hearingaid/HearingDevicesDialogDelegate.java @@ -32,6 +32,7 @@ import android.provider.Settings; import android.view.LayoutInflater; import android.view.View; import android.view.View.Visibility; +import android.view.accessibility.AccessibilityNodeInfo; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; @@ -208,6 +209,10 @@ public class HearingDevicesDialogDelegate implements SystemUIDialog.Delegate, } mMainHandler.post(() -> { mDeviceListAdapter.refreshDeviceItemList(mHearingDeviceItemList); + final List presetInfos = + mPresetsController.getAllPresetInfo(); + final int activePresetIndex = mPresetsController.getActivePresetIndex(); + refreshPresetInfoAdapter(presetInfos, activePresetIndex); mPresetSpinner.setVisibility( (activeHearingDevice != null && !mPresetInfoAdapter.isEmpty()) ? VISIBLE : GONE); @@ -295,10 +300,23 @@ public class HearingDevicesDialogDelegate implements SystemUIDialog.Delegate, mHearingDeviceItemList); mPresetsController.setActiveHearingDevice(activeHearingDevice); - mPresetInfoAdapter = new ArrayAdapter<>(dialog.getContext(), - android.R.layout.simple_spinner_dropdown_item); - mPresetInfoAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + mPresetInfoAdapter = new ArrayAdapter(dialog.getContext(), + R.layout.hearing_devices_preset_spinner_selected, + R.id.hearing_devices_preset_option_text); + mPresetInfoAdapter.setDropDownViewResource( + R.layout.hearing_devices_preset_dropdown_item); mPresetSpinner.setAdapter(mPresetInfoAdapter); + + // disable redundant Touch & Hold accessibility action for Switch Access + mPresetSpinner.setAccessibilityDelegate(new View.AccessibilityDelegate() { + @Override + public void onInitializeAccessibilityNodeInfo(@NonNull View host, + @NonNull AccessibilityNodeInfo info) { + info.removeAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_LONG_CLICK); + super.onInitializeAccessibilityNodeInfo(host, info); + } + }); + mPresetSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { -- cgit v1.2.3-59-g8ed1b