Some work on issue #2286804: sometimes text field doesn't accept input

This doesn't really fix the problem being brought up here, but fixes a
related issue I found while investigating it -- if you tap a text view
enough to cause it to try to scroll, this will cause the touch to become
a scroll instead of a click, even if there is nothing to scroll.  So
often quick taps to bring up the IME would be canceled because they
became a non-scroll.

Unfortuntately after syncing the latest build, I was having a lot of
trouble reproducing the original problem.  I think I need to punt it to
MR2 at this point.

Change-Id: If1f0bf33de1b4d71c9f677cdad07639b7a3fb772
diff --git a/core/java/android/text/method/Touch.java b/core/java/android/text/method/Touch.java
index 6995107..aa8d979 100644
--- a/core/java/android/text/method/Touch.java
+++ b/core/java/android/text/method/Touch.java
@@ -20,6 +20,7 @@
 import android.text.NoCopySpan;
 import android.text.Layout.Alignment;
 import android.text.Spannable;
+import android.util.Log;
 import android.view.MotionEvent;
 import android.view.ViewConfiguration;
 import android.widget.TextView;
@@ -156,8 +157,17 @@
                                                             padding));
                     ny = Math.max(ny, 0);
         
+                    int oldX = widget.getScrollX();
+                    int oldY = widget.getScrollY();
+
                     scrollTo(widget, layout, nx, ny);
-                    widget.cancelLongPress();
+
+                    // If we actually scrolled, then cancel the up action.
+                    if (oldX != widget.getScrollX()
+                            || oldY != widget.getScrollY()) {
+                        widget.cancelLongPress();
+                    }
+
                     return true;
                 }
             }
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index 596fd98..bcdefb3 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -6529,6 +6529,7 @@
             // Reset this state; it will be re-set if super.onTouchEvent
             // causes focus to move to the view.
             mTouchFocusSelected = false;
+            mScrolled = false;
         }
         
         final boolean superResult = super.onTouchEvent(event);
@@ -6545,10 +6546,6 @@
 
         if ((mMovement != null || onCheckIsTextEditor()) && mText instanceof Spannable && mLayout != null) {
             
-            if (action == MotionEvent.ACTION_DOWN) {
-                mScrolled = false;
-            }
-            
             boolean handled = false;
             
             int oldSelStart = Selection.getSelectionStart(mText);