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

Commit e85b5565 authored by Steven Ng's avatar Steven Ng
Browse files

A11y fix for all widgets tray (Part 2 / n)

Fix the focus change when expanding / collapsing an app in
the all widgets tray by adding stable ids and disable item
animator.

Item animator is also disable even accessibility isn't enabled
because the default item animator also disrupts the header
padding. It also makes the expansion / collapsing of widgets table
very unpredicible.

Test: Navigate all widgets tray with talkback on.

Bug: 183120145
Change-Id: Ib1e2ea4d543757248e635a834204db688532cbfa
parent 4076cae8
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -515,6 +515,7 @@ public class WidgetsFullSheet extends BaseWidgetSheet
                    apps.getIconCache(),
                    /* iconClickListener= */ WidgetsFullSheet.this,
                    /* iconLongClickListener= */ WidgetsFullSheet.this);
            mWidgetsListAdapter.setHasStableIds(true);
            switch (mAdapterType) {
                case PRIMARY:
                    mWidgetsListAdapter.setFilter(mPrimaryWidgetsFilter);
@@ -530,6 +531,8 @@ public class WidgetsFullSheet extends BaseWidgetSheet
        void setup(WidgetsRecyclerView recyclerView) {
            mWidgetsRecyclerView = recyclerView;
            mWidgetsRecyclerView.setAdapter(mWidgetsListAdapter);
            // Disables animation because it disrupts the item focus upon adapter item change.
            mWidgetsRecyclerView.setItemAnimator(null);
            mWidgetsRecyclerView.setHeaderViewDimensionsProvider(WidgetsFullSheet.this);
            mWidgetsRecyclerView.setEdgeEffectFactory(
                    ((TopRoundedCornerView) mContent).createEdgeEffectFactory());
+4 −1
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ import com.android.launcher3.widget.model.WidgetsListHeaderEntry;
import com.android.launcher3.widget.model.WidgetsListSearchHeaderEntry;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.function.Predicate;
@@ -216,7 +217,9 @@ public class WidgetsListAdapter extends Adapter<ViewHolder> implements OnHeaderC

    @Override
    public long getItemId(int pos) {
        return pos;
        return Arrays.hashCode(new Object[]{
                mVisibleEntries.get(pos).mPkgItem.hashCode(),
                getItemViewType(pos)});
    }

    @Override