summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Yang <zonghuayang@google.com>2022-05-17 01:07:24 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-05-17 01:07:24 +0000
commit38f51b8be0a0ed8de2e23788d28c0d3130392be4 (patch)
treef53e26992487bad080be7fc73a43e54ee8199123
parent542ae22cdcf78309fe6953c2cd1c22aae0f26655 (diff)
parent87689fca119124c2ddbc01d94a4bc20a8d8df167 (diff)
downloadThemePicker-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.java13
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);
}
}
}