From a16f4f21b26144ab9764f3dc9956dce2223f07c1 Mon Sep 17 00:00:00 2001 From: Joe Bolinger Date: Mon, 21 Jun 2021 15:40:34 -0700 Subject: [PATCH] Fix crash when BiometricPrompt requests swipe pattern and talk back is enabled. The view id can be Integer.MAX_VALUE, which causes the crash. Fix: 185164902 Test: manual Change-Id: Id51357f4cfa52cdd27d7dbd235fbd154b1031624 --- core/java/com/android/internal/widget/LockPatternView.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/java/com/android/internal/widget/LockPatternView.java b/core/java/com/android/internal/widget/LockPatternView.java index 73c5460755b1c..3f756d7577066 100644 --- a/core/java/com/android/internal/widget/LockPatternView.java +++ b/core/java/com/android/internal/widget/LockPatternView.java @@ -1524,7 +1524,9 @@ public class LockPatternView extends View { if (virtualViewId != ExploreByTouchHelper.INVALID_ID) { int row = (virtualViewId - VIRTUAL_BASE_VIEW_ID) / 3; int col = (virtualViewId - VIRTUAL_BASE_VIEW_ID) % 3; - return !mPatternDrawLookup[row][col]; + if (row < 3) { + return !mPatternDrawLookup[row][col]; + } } return false; } @@ -1570,7 +1572,6 @@ public class LockPatternView extends View { final Rect bounds = mTempRect; final int row = ordinal / 3; final int col = ordinal % 3; - final CellState cell = mCellStates[row][col]; float centerX = getCenterXForColumn(col); float centerY = getCenterYForRow(row); float cellheight = mSquareHeight * mHitFactor * 0.5f;