Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(926)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchSelectionController.java

Issue 2150213002: [TTS] Handle showing of a Context Menu more gracefully. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Just a comment. Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchSelectionController.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchSelectionController.java b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchSelectionController.java
index be31d7499586cd33ba595f0337446a27c753f240..9f56db3a1b313797a79e176daa83292955029fa8 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchSelectionController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchSelectionController.java
@@ -79,6 +79,10 @@ public class ContextualSearchSelectionController {
// The time of the most last scroll activity, or 0 if none.
private long mLastScrollTimeNs;
+ // Tracks whether a Context Menu has just been shown and the UX has been dismissed.
+ // The selection may be unreliable until the next reset. See crbug.com/628436.
+ private boolean mIsContextMenuShown;
+
private class ContextualSearchGestureStateListener extends GestureStateListener {
@Override
public void onScrollStarted(int scrollOffsetY, int scrollExtentY) {
@@ -144,6 +148,16 @@ public class ContextualSearchSelectionController {
}
/**
+ * Notifies that a Context Menu has been shown.
+ * Future controller events may be unreliable until the next reset.
+ */
+ void onContextMenuShown() {
+ // Hide the UX.
+ mHandler.handleSelectionDismissal();
+ mIsContextMenuShown = true;
+ }
+
+ /**
* Notifies that the Contextual Search has ended.
* @param reason The reason for ending the Contextual Search.
*/
@@ -265,11 +279,14 @@ public class ContextualSearchSelectionController {
boolean shouldHandleSelection = false;
switch (eventType) {
case SelectionEventType.SELECTION_HANDLES_SHOWN:
- mWasTapGestureDetected = false;
- mSelectionType = SelectionType.LONG_PRESS;
- shouldHandleSelection = true;
- // Since we're showing pins, we don't care if the previous tap was invalid anymore.
- unscheduleInvalidTapNotification();
+ if (!mIsContextMenuShown) {
+ mWasTapGestureDetected = false;
+ mSelectionType = SelectionType.LONG_PRESS;
+ shouldHandleSelection = true;
+ // Since we're showing pins, we don't care if the previous tap was invalid
+ // anymore.
+ unscheduleInvalidTapNotification();
+ }
break;
case SelectionEventType.SELECTION_HANDLES_CLEARED:
mHandler.handleSelectionDismissal();
@@ -320,6 +337,7 @@ public class ContextualSearchSelectionController {
resetSelectionStates();
mLastTapState = null;
mLastScrollTimeNs = 0;
+ mIsContextMenuShown = false;
}
/**

Powered by Google App Engine
This is Rietveld 408576698