diff options
author | John Pan <johnpan@google.com> | 2021-12-16 21:04:05 +0800 |
---|---|---|
committer | John Pan <johnpan@google.com> | 2021-12-22 02:09:51 +0000 |
commit | 7f1a37d33575364062809db3ddf8ee8ab30f9f55 (patch) | |
tree | 39dcaa06bb97e404a3caaaf4db33b85c6176698a | |
parent | c476673fe4bf92558c9d7e06d5f9d1724b8b5261 (diff) |
Fix Talkback announcing null when changing color option
Move the Talkback announcement for options from OptionSelectorController to GridFragment. We only need this logic for grid option and it's hard to understand with the color option without title.
Videos:
-Before: https://drive.google.com/file/d/1-tFBWwz_SjbenpmAozPhlC7dRRFHiDkN/view?usp=sharing&resourcekey=0-SLo4PJEo3G3J0O_LVYSd7A
-After: https://drive.google.com/file/d/1-XTa--g59Dw_HXxm5SjofE2nxlBWDhtY/view?usp=sharing&resourcekey=0-e9mS5uqltrAR3zyXS8cUqQ
-After GridFragment: https://drive.google.com/file/d/11sDHACAOSU4npMao_4f-NUKUje3fZlfj/view?usp=sharing&resourcekey=0-8Pm0qkzvLilSMhpzUBWr6A
Bug: 210801885
Test: Manual
Change-Id: If47204681655f42741a2e46e2d585144a7d08711
-rw-r--r-- | src/com/android/customization/picker/grid/GridFragment.java | 7 | ||||
-rw-r--r-- | src/com/android/customization/widget/OptionSelectorController.java | 11 |
2 files changed, 8 insertions, 10 deletions
diff --git a/src/com/android/customization/picker/grid/GridFragment.java b/src/com/android/customization/picker/grid/GridFragment.java index 9896edc8..cb04fc39 100644 --- a/src/com/android/customization/picker/grid/GridFragment.java +++ b/src/com/android/customization/picker/grid/GridFragment.java @@ -212,6 +212,13 @@ public class GridFragment extends AppbarFragment { restoreBottomActionBarVisibility(); mOptionsController.addListener(selectedOption -> { + String title = selectedOption.getTitle(); + int stringId = R.string.option_previewed_description; + if (selectedOption.isActive(mGridManager)) { + stringId = R.string.option_applied_previewed_description; + } + CharSequence cd = getContext().getString(stringId, title); + mOptionsContainer.announceForAccessibility(cd); onOptionSelected(selectedOption); mBottomActionBar.show(); mGridOptionViewModel.setBottomActionBarVisible(true); diff --git a/src/com/android/customization/widget/OptionSelectorController.java b/src/com/android/customization/widget/OptionSelectorController.java index 0f1b6a66..952bc555 100644 --- a/src/com/android/customization/widget/OptionSelectorController.java +++ b/src/com/android/customization/widget/OptionSelectorController.java @@ -194,16 +194,7 @@ public class OptionSelectorController<T extends CustomizationOption<T>> { } holder.itemView.setActivated(option.equals(mSelectedOption)); option.bindThumbnailTile(holder.tileView); - holder.itemView.setOnClickListener(view -> { - setSelectedOption(option); - String title = option.getTitle(); - int stringId = R.string.option_previewed_description; - if (mSelectedOption.equals(mAppliedOption)) { - stringId = R.string.option_applied_previewed_description; - } - CharSequence cd = holder.itemView.getContext().getString(stringId, title); - view.announceForAccessibility(cd); - }); + holder.itemView.setOnClickListener(view -> setSelectedOption(option)); Resources res = mContainer.getContext().getResources(); if (mCheckmarkStyle == CheckmarkStyle.CORNER && option.equals(mAppliedOption)) { |