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
This commit is contained in:
@@ -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);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user