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

Commit 24453353 authored by Bob Yang's avatar Bob Yang
Browse files

Change the id for color sections and its ancestor.

Change the id for color sections to prevent focus issues on talkback mode

Bug: 227707089
Test: Manual
Change-Id: I6d938b048514c217b4d76e8dedb44493fa287ee5
parent 87689fca
Loading
Loading
Loading
Loading
+15 −11
Original line number Diff line number Diff line
@@ -65,7 +65,6 @@ 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.
@@ -75,6 +74,9 @@ public class ColorSectionController implements CustomizationSectionController<Co
    private static final String TAG = "ColorSectionController";
    private static final String KEY_COLOR_TAB_POSITION = "COLOR_TAB_POSITION";
    private static final String KEY_COLOR_PAGE_POSITION = "COLOR_PAGE_POSITION";
    private static final String ID_VIEWPAGER = "ColorSectionController_colorSectionViewPager";
    private static final String ID_ITEMVIEW = "ColorSectionController_itemView";
    private static final String ID_CONTAINER = "ColorSectionController_container";
    private static final long MIN_COLOR_APPLY_PERIOD = 500L;

    private static final int WALLPAPER_TAB_INDEX = 0;
@@ -160,7 +162,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.setAccessibilityDelegate(createAccessibilityDelegate(ID_VIEWPAGER));
        mColorSectionViewPager.setAdapter(mColorSectionAdapter);
        mColorSectionViewPager.setUserInputEnabled(false);
        if (ColorProvider.themeStyleEnabled) {
@@ -409,13 +411,15 @@ public class ColorSectionController implements CustomizationSectionController<Co
        return action;
    }

    private View.AccessibilityDelegate mAccessibilityDelegate = new View.AccessibilityDelegate() {
    private View.AccessibilityDelegate createAccessibilityDelegate(String id) {
        return new View.AccessibilityDelegate() {
            @Override
            public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
                super.onInitializeAccessibilityNodeInfo(host, info);
            info.setUniqueId(UUID.randomUUID().toString());
                info.setUniqueId(id);
            }
        };
    }

    private class ColorSectionAdapter extends
            RecyclerView.Adapter<ColorSectionAdapter.ColorPageViewHolder> {
@@ -482,8 +486,8 @@ public class ColorSectionController implements CustomizationSectionController<Co
                if (ColorProvider.themeStyleEnabled) {
                    mPageIndicator.setVisibility(VISIBLE);
                }
                itemView.setAccessibilityDelegate(mAccessibilityDelegate);
                mContainer.setAccessibilityDelegate(mAccessibilityDelegate);
                itemView.setAccessibilityDelegate(createAccessibilityDelegate(ID_ITEMVIEW));
                mContainer.setAccessibilityDelegate(createAccessibilityDelegate(ID_CONTAINER));
            }
        }
    }