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

Commit d593dcd5 authored by Fabian Kozynski's avatar Fabian Kozynski
Browse files

Fix a11y add in TileAdapter

* Pass a final int position to scroll so it cannot be modified somewhere
else.
* Use requestAccessibilityFocus instead of requestFocus

Test: manual
Fixes: 208364651
Change-Id: Ic9192a2ed30fe7ae53aebea62d3c308579900a69
parent 7c3f1a0c
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -414,9 +414,9 @@ public class TileAdapter extends RecyclerView.Adapter<Holder> implements TileSta
                public void onLayoutChange(View v, int left, int top, int right, int bottom,
                        int oldLeft, int oldTop, int oldRight, int oldBottom) {
                    holder.mTileView.removeOnLayoutChangeListener(this);
                    holder.mTileView.requestFocus();
                    holder.mTileView.requestAccessibilityFocus();
                    if (mAccessibilityAction == ACTION_NONE) {
                        holder.mTileView.clearFocus();
                        holder.mTileView.clearAccessibilityFocus();
                    }
                }
            });
@@ -449,12 +449,13 @@ public class TileAdapter extends RecyclerView.Adapter<Holder> implements TileSta
        // Update the tile divider position
        mTileDividerIndex++;
        mFocusIndex = mEditIndex - 1;
        final int focus = mFocusIndex;
        mNeedsFocus = true;
        if (mRecyclerView != null) {
            mRecyclerView.post(() -> {
                final RecyclerView recyclerView = mRecyclerView;
                if (recyclerView != null) {
                    recyclerView.smoothScrollToPosition(mFocusIndex);
                    recyclerView.smoothScrollToPosition(focus);
                }
            });
        }