diff options
author | Bob Yang <zonghuayang@google.com> | 2022-05-19 11:48:11 +0800 |
---|---|---|
committer | Bob Yang <zonghuayang@google.com> | 2022-05-26 00:52:38 +0000 |
commit | 24453353b303d7a8d782de38831093160bd863a7 (patch) | |
tree | 015125f1950b5f7c0a6c8e46d952c6cab00b1572 | |
parent | 87689fca119124c2ddbc01d94a4bc20a8d8df167 (diff) | |
download | ThemePicker-24453353b303d7a8d782de38831093160bd863a7.tar.gz |
Change the id for color sections and its ancestor.
Change the id for color sections to prevent focus issues on talkback mode
Bug: 227707089
Test: Manual
Change-Id: I6d938b048514c217b4d76e8dedb44493fa287ee5
-rw-r--r-- | src/com/android/customization/model/color/ColorSectionController.java | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/src/com/android/customization/model/color/ColorSectionController.java b/src/com/android/customization/model/color/ColorSectionController.java index 1de1c048..3b8a9273 100644 --- a/src/com/android/customization/model/color/ColorSectionController.java +++ b/src/com/android/customization/model/color/ColorSectionController.java @@ -65,7 +65,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.Optional; -import java.util.UUID; /** * Color section view's controller for the logic of color customization. @@ -75,6 +74,9 @@ public class ColorSectionController implements CustomizationSectionController<Co private static final String TAG = "ColorSectionController"; private static final String KEY_COLOR_TAB_POSITION = "COLOR_TAB_POSITION"; private static final String KEY_COLOR_PAGE_POSITION = "COLOR_PAGE_POSITION"; + private static final String ID_VIEWPAGER = "ColorSectionController_colorSectionViewPager"; + private static final String ID_ITEMVIEW = "ColorSectionController_itemView"; + private static final String ID_CONTAINER = "ColorSectionController_container"; private static final long MIN_COLOR_APPLY_PERIOD = 500L; private static final int WALLPAPER_TAB_INDEX = 0; @@ -160,7 +162,7 @@ public class ColorSectionController implements CustomizationSectionController<Co mColorSectionView = (ColorSectionView) LayoutInflater.from(context).inflate( R.layout.color_section_view, /* root= */ null); mColorSectionViewPager = mColorSectionView.findViewById(R.id.color_section_view_pager); - mColorSectionViewPager.setAccessibilityDelegate(mAccessibilityDelegate); + mColorSectionViewPager.setAccessibilityDelegate(createAccessibilityDelegate(ID_VIEWPAGER)); mColorSectionViewPager.setAdapter(mColorSectionAdapter); mColorSectionViewPager.setUserInputEnabled(false); if (ColorProvider.themeStyleEnabled) { @@ -409,13 +411,15 @@ public class ColorSectionController implements CustomizationSectionController<Co return action; } - private View.AccessibilityDelegate mAccessibilityDelegate = new View.AccessibilityDelegate() { - @Override - public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) { - super.onInitializeAccessibilityNodeInfo(host, info); - info.setUniqueId(UUID.randomUUID().toString()); - } - }; + private View.AccessibilityDelegate createAccessibilityDelegate(String id) { + return new View.AccessibilityDelegate() { + @Override + public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) { + super.onInitializeAccessibilityNodeInfo(host, info); + info.setUniqueId(id); + } + }; + } private class ColorSectionAdapter extends RecyclerView.Adapter<ColorSectionAdapter.ColorPageViewHolder> { @@ -482,8 +486,8 @@ public class ColorSectionController implements CustomizationSectionController<Co if (ColorProvider.themeStyleEnabled) { mPageIndicator.setVisibility(VISIBLE); } - itemView.setAccessibilityDelegate(mAccessibilityDelegate); - mContainer.setAccessibilityDelegate(mAccessibilityDelegate); + itemView.setAccessibilityDelegate(createAccessibilityDelegate(ID_ITEMVIEW)); + mContainer.setAccessibilityDelegate(createAccessibilityDelegate(ID_CONTAINER)); } } } |