OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.chrome.browser.contextualsearch; | 5 package org.chromium.chrome.browser.contextualsearch; |
6 | 6 |
7 import android.os.Handler; | 7 import android.os.Handler; |
8 import android.text.TextUtils; | 8 import android.text.TextUtils; |
9 import android.view.View; | 9 import android.view.View; |
10 import android.view.ViewGroup; | 10 import android.view.ViewGroup; |
(...skipping 1192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1203 if (!isOverlayVideoMode()) { | 1203 if (!isOverlayVideoMode()) { |
1204 mSelectionController.handleShowUnhandledTapUIIfNeeded(x, y); | 1204 mSelectionController.handleShowUnhandledTapUIIfNeeded(x, y); |
1205 } | 1205 } |
1206 } | 1206 } |
1207 | 1207 |
1208 @Override | 1208 @Override |
1209 public boolean sendsSelectionPopupUpdates() { | 1209 public boolean sendsSelectionPopupUpdates() { |
1210 return false; | 1210 return false; |
1211 } | 1211 } |
1212 | 1212 |
1213 // TODO(donnd): add handling of an ACK to selectWordAroundCaret (crbug.com/4 35778 has details). | 1213 @Override |
1214 public void selectWordAroundCaretAck(boolean didSelect, int startAdjust, int endAdjust) { | |
1215 if (isOverlayVideoMode() | |
aelias_OOO_until_Jul13
2017/04/27 22:01:27
Is this needed? The request is already suppressed
Donn Denman
2017/04/28 20:28:00
Done.
| |
1216 || !mInternalStateController.isStillWorkingOn(InternalState.STAR T_SHOWING_TAP_UI)) { | |
aelias_OOO_until_Jul13
2017/04/27 22:01:27
This early-return also looks a bit sketchy. Gener
Donn Denman
2017/04/28 20:28:00
I *think* we want to leave this isStillWorkingOn()
aelias_OOO_until_Jul13
2017/04/28 20:55:29
It doesn't fully make sense to me. If the ack sho
Donn Denman
2017/04/28 21:54:41
We have a simple model where we only work on the m
aelias_OOO_until_Jul13
2017/04/28 22:14:33
Counterpoints:
- I don't agree with the claim of
| |
1217 return; | |
1218 } | |
1219 | |
1220 if (didSelect) { | |
1221 assert mContext != null; | |
1222 mContext.onSelectionAdjusted(startAdjust, endAdjust); | |
1223 showSelectionAsSearchInBar(mSelectionController.getSelectedText()); | |
1224 } | |
1225 mInternalStateController.notifyFinishedWorkOn(InternalState.START_SHOWIN G_TAP_UI); | |
1226 } | |
1214 | 1227 |
1215 /** | 1228 /** |
1216 * @return Whether the display is in a full-screen video overlay mode. | 1229 * @return Whether the display is in a full-screen video overlay mode. |
1217 */ | 1230 */ |
1218 private boolean isOverlayVideoMode() { | 1231 private boolean isOverlayVideoMode() { |
1219 return mActivity.getFullscreenManager() != null | 1232 return mActivity.getFullscreenManager() != null |
1220 && mActivity.getFullscreenManager().isOverlayVideoMode(); | 1233 && mActivity.getFullscreenManager().isOverlayVideoMode(); |
1221 } | 1234 } |
1222 | 1235 |
1223 // ========================================================================= =================== | 1236 // ========================================================================= =================== |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1288 * to expand the selection to a whole word. | 1301 * to expand the selection to a whole word. |
1289 */ | 1302 */ |
1290 @Override | 1303 @Override |
1291 public void handleSelection(String selection, boolean selectionValid, Select ionType type, | 1304 public void handleSelection(String selection, boolean selectionValid, Select ionType type, |
1292 float x, float y) { | 1305 float x, float y) { |
1293 if (mIsAccessibilityModeEnabled) return; | 1306 if (mIsAccessibilityModeEnabled) return; |
1294 | 1307 |
1295 if (!selection.isEmpty()) { | 1308 if (!selection.isEmpty()) { |
1296 ContextualSearchUma.logSelectionIsValid(selectionValid); | 1309 ContextualSearchUma.logSelectionIsValid(selectionValid); |
1297 | 1310 |
1298 // Update the context so it knows the selection has changed. | |
1299 if (mContext != null) mContext.updateContextFromSelection(selection) ; | |
1300 | |
1301 if (selectionValid && mSearchPanel != null) { | 1311 if (selectionValid && mSearchPanel != null) { |
1302 mSearchPanel.updateBasePageSelectionYPx(y); | 1312 mSearchPanel.updateBasePageSelectionYPx(y); |
1303 if (!mSearchPanel.isShowing()) { | 1313 if (!mSearchPanel.isShowing()) { |
1304 mSearchPanel.getPanelMetrics().onSelectionEstablished(select ion); | 1314 mSearchPanel.getPanelMetrics().onSelectionEstablished(select ion); |
1305 } | 1315 } |
1306 showSelectionAsSearchInBar(selection); | 1316 showSelectionAsSearchInBar(selection); |
1307 | 1317 |
1308 // TODO(donnd): remove this complication when we get an ACK mess age from | 1318 if (type == SelectionType.LONG_PRESS) { |
1309 // selectWordAroundCaret (see crbug.com/435778). | |
1310 if (type == SelectionType.TAP) { | |
1311 mInternalStateController.notifyFinishedWorkOn( | |
1312 InternalState.START_SHOWING_TAP_UI); | |
1313 } else { | |
1314 mInternalStateController.enter(InternalState.LONG_PRESS_RECO GNIZED); | 1319 mInternalStateController.enter(InternalState.LONG_PRESS_RECO GNIZED); |
1315 } | 1320 } |
1316 } else { | 1321 } else { |
1317 hideContextualSearch(StateChangeReason.INVALID_SELECTION); | 1322 hideContextualSearch(StateChangeReason.INVALID_SELECTION); |
1318 } | 1323 } |
1319 } | 1324 } |
1320 } | 1325 } |
1321 | 1326 |
1322 @Override | 1327 @Override |
1323 public void handleSelectionDismissal() { | 1328 public void handleSelectionDismissal() { |
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1566 private native void nativeStartSearchTermResolutionRequest(long nativeContex tualSearchManager, | 1571 private native void nativeStartSearchTermResolutionRequest(long nativeContex tualSearchManager, |
1567 ContextualSearchContext contextualSearchContext, WebContents baseWeb Contents); | 1572 ContextualSearchContext contextualSearchContext, WebContents baseWeb Contents); |
1568 protected native void nativeGatherSurroundingText(long nativeContextualSearc hManager, | 1573 protected native void nativeGatherSurroundingText(long nativeContextualSearc hManager, |
1569 ContextualSearchContext contextualSearchContext, WebContents baseWeb Contents); | 1574 ContextualSearchContext contextualSearchContext, WebContents baseWeb Contents); |
1570 private native void nativeEnableContextualSearchJsApiForOverlay( | 1575 private native void nativeEnableContextualSearchJsApiForOverlay( |
1571 long nativeContextualSearchManager, WebContents overlayWebContents); | 1576 long nativeContextualSearchManager, WebContents overlayWebContents); |
1572 // Don't call these directly, instead call the private methods that cache th e results. | 1577 // Don't call these directly, instead call the private methods that cache th e results. |
1573 private native String nativeGetTargetLanguage(long nativeContextualSearchMan ager); | 1578 private native String nativeGetTargetLanguage(long nativeContextualSearchMan ager); |
1574 private native String nativeGetAcceptLanguages(long nativeContextualSearchMa nager); | 1579 private native String nativeGetAcceptLanguages(long nativeContextualSearchMa nager); |
1575 } | 1580 } |
OLD | NEW |