diff options
author | Bob Yang <zonghuayang@google.com> | 2022-05-17 01:07:24 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2022-05-17 01:07:24 +0000 |
commit | 38f51b8be0a0ed8de2e23788d28c0d3130392be4 (patch) | |
tree | f53e26992487bad080be7fc73a43e54ee8199123 | |
parent | 542ae22cdcf78309fe6953c2cd1c22aae0f26655 (diff) | |
parent | 87689fca119124c2ddbc01d94a4bc20a8d8df167 (diff) | |
download | ThemePicker-38f51b8be0a0ed8de2e23788d28c0d3130392be4.tar.gz |
Merge "Set a unique id for color sections to prevent focus issues on talkback mode" into tm-dev am: 87689fca11
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/ThemePicker/+/18282468
Change-Id: I84001a0f41d8ee0e2bde9981f838a2dd0ff501fc
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-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); } } } |