summaryrefslogtreecommitdiff
path: root/src/com/android
diff options
context:
space:
mode:
authorBob Yang <zonghuayang@google.com>2022-05-11 11:58:49 +0800
committerBob Yang <zonghuayang@google.com>2022-05-13 11:15:57 +0800
commit646aeb78ac90477260dbdd97b292d85f61c7b1d0 (patch)
tree20303c2d35f71a652ff1ff1eef47953af1a55fb8 /src/com/android
parent25d017c02322860d4c7a54d033421f8d77d8fef8 (diff)
downloadThemePicker-646aeb78ac90477260dbdd97b292d85f61c7b1d0.tar.gz
Set a unique id for color sections to prevent focus issues on talkback mode
- Set a unique id for color sections and its ancestor. Bug: 227707089 Test: Manual Change-Id: If64b9b9c33046d59d7d72e0b7d696d106b574cf9
Diffstat (limited to 'src/com/android')
-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 ac346dd9..b39b990d 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;
@@ -63,6 +64,7 @@ import com.google.common.collect.Lists;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
+import java.util.UUID;
/**
* Color section view's controller for the logic of color customization.
@@ -127,6 +129,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) {
@@ -378,6 +381,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> {
@@ -443,6 +454,8 @@ public class ColorSectionController implements CustomizationSectionController<Co
if (ColorProvider.themeStyleEnabled) {
mPageIndicator.setVisibility(VISIBLE);
}
+ itemView.setAccessibilityDelegate(mAccessibilityDelegate);
+ mContainer.setAccessibilityDelegate(mAccessibilityDelegate);
}
}
}