Disable gesture detector on mini-keyboard (DO NOT MERGE)

This is cherry-pick I548501f7 from Honeycomb.

Gesture detector, for closing keyboard by swiping down, must be
disabled not only when mini-keyboard is on the screen, but also in the
mini-keyboard itself.

Bug: 3105595
Change-Id: Ic4603637208794a1bf6cfeb0d22dadd9a1e49e81
diff --git a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
index 5a015e9..b1ef085 100644
--- a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
+++ b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
@@ -226,7 +226,7 @@
     protected KeyDetector mKeyDetector = new ProximityKeyDetector();
 
     // Swipe gesture detector
-    private final GestureDetector mGestureDetector;
+    private GestureDetector mGestureDetector;
     private final SwipeTracker mSwipeTracker = new SwipeTracker();
     private final int mSwipeThreshold;
     private final boolean mDisambiguateSwipe;
@@ -1106,6 +1106,8 @@
         });
         // Override default ProximityKeyDetector.
         miniKeyboard.mKeyDetector = new MiniKeyboardKeyDetector(mMiniKeyboardSlideAllowance);
+        // Remove gesture detector on mini-keyboard
+        miniKeyboard.mGestureDetector = null;
 
         Keyboard keyboard;
         if (popupKey.popupCharacters != null) {
@@ -1307,8 +1309,9 @@
         // Track the last few movements to look for spurious swipes.
         mSwipeTracker.addMovement(me);
 
-        // We must disable gesture detector while mini-keyboard is on the screen.
-        if (mMiniKeyboard == null && mGestureDetector.onTouchEvent(me)) {
+        // Gesture detector must be enabled only when mini-keyboard is not on the screen.
+        if (mMiniKeyboard == null
+                && mGestureDetector != null && mGestureDetector.onTouchEvent(me)) {
             dismissKeyPreview();
             mHandler.cancelKeyTimers();
             return true;