diff options
author | Bob Yang <zonghuayang@google.com> | 2022-05-17 00:36:07 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2022-05-17 00:36:07 +0000 |
commit | 87689fca119124c2ddbc01d94a4bc20a8d8df167 (patch) | |
tree | f2e408a2f510bde5e101f8fdff82d30c069e431b | |
parent | 0b266bc5bdd6f63e1f5ec3ea18ba1d7c3324690c (diff) | |
parent | 646aeb78ac90477260dbdd97b292d85f61c7b1d0 (diff) | |
download | ThemePicker-87689fca119124c2ddbc01d94a4bc20a8d8df167.tar.gz |
Merge "Set a unique id for color sections to prevent focus issues on talkback mode" into tm-dev
-rw-r--r-- | src/com/android/customization/model/color/ColorSectionController.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/com/android/customization/model/color/ColorSectionController.java b/src/com/android/customization/model/color/ColorSectionController.java index 80bc3c6e..1de1c048 100644 --- a/src/com/android/customization/model/color/ColorSectionController.java +++ b/src/com/android/customization/model/color/ColorSectionController.java @@ -35,6 +35,7 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.view.accessibility.AccessibilityNodeInfo; import android.widget.FrameLayout; import androidx.annotation.Nullable; @@ -64,6 +65,7 @@ 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. @@ -158,6 +160,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.setAdapter(mColorSectionAdapter); mColorSectionViewPager.setUserInputEnabled(false); if (ColorProvider.themeStyleEnabled) { @@ -406,6 +409,14 @@ 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 class ColorSectionAdapter extends RecyclerView.Adapter<ColorSectionAdapter.ColorPageViewHolder> { @@ -471,6 +482,8 @@ public class ColorSectionController implements CustomizationSectionController<Co if (ColorProvider.themeStyleEnabled) { mPageIndicator.setVisibility(VISIBLE); } + itemView.setAccessibilityDelegate(mAccessibilityDelegate); + mContainer.setAccessibilityDelegate(mAccessibilityDelegate); } } } |