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 {