Don't assume there's a selected position in touch mode.
Bug #2520743
Bad GridView, bad!
Change-Id: Ideed32dc70a69c85df5afbf949e78b481e147b7f
diff --git a/core/java/android/widget/GridView.java b/core/java/android/widget/GridView.java
index be633be..d867980 100644
--- a/core/java/android/widget/GridView.java
+++ b/core/java/android/widget/GridView.java
@@ -1128,11 +1128,13 @@
default:
if (childCount == 0) {
if (!mStackFromBottom) {
- setSelectedPositionInt(0);
+ setSelectedPositionInt(mAdapter == null || isInTouchMode() ?
+ INVALID_POSITION : 0);
sel = fillFromTop(childrenTop);
} else {
final int last = mItemCount - 1;
- setSelectedPositionInt(last);
+ setSelectedPositionInt(mAdapter == null || isInTouchMode() ?
+ INVALID_POSITION : last);
sel = fillFromBottom(last, childrenBottom);
}
} else {