am f7ed99e6: am 2e561546: Merge "Floating toolbar shown after rotation in extract mode" into mnc-dev

* commit 'f7ed99e6bc20f4692b0564b3eb18b1de2cd47129':
  Floating toolbar shown after rotation in extract mode
diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java
index e050bda..a916887 100644
--- a/core/java/android/widget/Editor.java
+++ b/core/java/android/widget/Editor.java
@@ -4517,34 +4517,39 @@
             final float eventY = event.getY();
             switch (event.getActionMasked()) {
                 case MotionEvent.ACTION_DOWN:
+                    if (extractedTextModeWillBeStarted()) {
+                        // Prevent duplicating the selection handles until the mode starts.
+                        hide();
+                    } else {
+                        // Remember finger down position, to be able to start selection from there.
+                        mMinTouchOffset = mMaxTouchOffset = mTextView.getOffsetForPosition(
+                                eventX, eventY);
 
-                    // Remember finger down position, to be able to start selection from there.
-                    mMinTouchOffset = mMaxTouchOffset = mTextView.getOffsetForPosition(
-                            eventX, eventY);
+                        // Double tap detection
+                        if (mGestureStayedInTapRegion) {
+                            if (mDoubleTap) {
+                                final float deltaX = eventX - mDownPositionX;
+                                final float deltaY = eventY - mDownPositionY;
+                                final float distanceSquared = deltaX * deltaX + deltaY * deltaY;
 
-                    // Double tap detection
-                    if (mGestureStayedInTapRegion) {
-                        if (mDoubleTap) {
-                            final float deltaX = eventX - mDownPositionX;
-                            final float deltaY = eventY - mDownPositionY;
-                            final float distanceSquared = deltaX * deltaX + deltaY * deltaY;
+                                ViewConfiguration viewConfiguration = ViewConfiguration.get(
+                                        mTextView.getContext());
+                                int doubleTapSlop = viewConfiguration.getScaledDoubleTapSlop();
+                                boolean stayedInArea =
+                                        distanceSquared < doubleTapSlop * doubleTapSlop;
 
-                            ViewConfiguration viewConfiguration = ViewConfiguration.get(
-                                    mTextView.getContext());
-                            int doubleTapSlop = viewConfiguration.getScaledDoubleTapSlop();
-                            boolean stayedInArea = distanceSquared < doubleTapSlop * doubleTapSlop;
-
-                            if (stayedInArea && isPositionOnText(eventX, eventY)) {
-                                selectCurrentWordAndStartDrag();
-                                mDiscardNextActionUp = true;
+                                if (stayedInArea && isPositionOnText(eventX, eventY)) {
+                                    selectCurrentWordAndStartDrag();
+                                    mDiscardNextActionUp = true;
+                                }
                             }
                         }
-                    }
 
-                    mDownPositionX = eventX;
-                    mDownPositionY = eventY;
-                    mGestureStayedInTapRegion = true;
-                    mHaventMovedEnoughToStartDrag = true;
+                        mDownPositionX = eventX;
+                        mDownPositionY = eventY;
+                        mGestureStayedInTapRegion = true;
+                        mHaventMovedEnoughToStartDrag = true;
+                    }
                     break;
 
                 case MotionEvent.ACTION_POINTER_DOWN: