Fix monkey bug when focus change before layout

Bug 64359848

Monkey found a divide-by-zero error caused by the width not set
when focus was changed before layout. This CL just ensures that
there is no divide by zero by selecting the first row/column.

Test: manually launched Date Picker and it didn't crash
Change-Id: Id6dd12cd20b052af71ab980c8a694020ea679e7c
This commit is contained in:
George Mount
2017-08-04 10:17:36 -07:00
parent a9f592fc4d
commit 45362a6b72

View File

@@ -517,6 +517,8 @@ class SimpleMonthView extends View {
private int findClosestRow(@Nullable Rect previouslyFocusedRect) {
if (previouslyFocusedRect == null) {
return 3;
} else if (mDayHeight == 0) {
return 0; // There hasn't been a layout, so just choose the first row
} else {
int centerY = previouslyFocusedRect.centerY();
@@ -545,6 +547,8 @@ class SimpleMonthView extends View {
private int findClosestColumn(@Nullable Rect previouslyFocusedRect) {
if (previouslyFocusedRect == null) {
return DAYS_IN_WEEK / 2;
} else if (mCellWidth == 0) {
return 0; // There hasn't been a layout, so we can just choose the first column
} else {
int centerX = previouslyFocusedRect.centerX() - mPaddingLeft;
final int columnFromLeft =