Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 646aeb78 authored by Bob Yang's avatar Bob Yang
Browse files

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
parent 25d017c0
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -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);
            }
        }
    }