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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java

Issue 1379183003: [ContextualSearch] Adds long press promo for Contextual Search. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressing David's comments and tweaking policy Created 5 years, 2 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 unified diff | Download patch
OLDNEW
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.app.Activity; 7 import android.app.Activity;
8 import android.view.View; 8 import android.view.View;
9 import android.view.ViewGroup; 9 import android.view.ViewGroup;
10 import android.view.ViewTreeObserver; 10 import android.view.ViewTreeObserver;
(...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 // Although the surroundings are extracted, they will not be sent to the server as 503 // Although the surroundings are extracted, they will not be sent to the server as
504 // part of search term resolution, just sent to Icing which keeps th em local until 504 // part of search term resolution, just sent to Icing which keeps th em local until
505 // the user activates a Voice Search. 505 // the user activates a Voice Search.
506 nativeGatherSurroundingText(mNativeContextualSearchManagerPtr, 506 nativeGatherSurroundingText(mNativeContextualSearchManagerPtr,
507 mSelectionController.getSelectedText(), NEVER_USE_RESOLVED_S EARCH_TERM, 507 mSelectionController.getSelectedText(), NEVER_USE_RESOLVED_S EARCH_TERM,
508 getBaseContentView(), mPolicy.maySendBasePageUrl()); 508 getBaseContentView(), mPolicy.maySendBasePageUrl());
509 } 509 }
510 510
511 mWereSearchResultsSeen = false; 511 mWereSearchResultsSeen = false;
512 512
513 // Show the Peek Promo only when the Panel wasn't previously visible, pr ovided
514 // the policy allows it.
515 if (!mSearchPanelDelegate.isShowing()) {
516 boolean isPeekPromoAvailable = mPolicy.isPeekPromoAvailable(mSelecti onController);
517 if (isPeekPromoAvailable) {
518 mSearchPanelDelegate.showPeekPromo();
519 mPolicy.registerPeekPromoSeen();
520 }
521 }
522
513 // TODO(donnd): although we are showing the bar here, we have not yet se t the text! 523 // TODO(donnd): although we are showing the bar here, we have not yet se t the text!
514 // Refactor to show the bar and set the text at the same time! 524 // Refactor to show the bar and set the text at the same time!
515 // TODO(donnd): If there was a previously ongoing contextual search, we should ensure 525 // TODO(donnd): If there was a previously ongoing contextual search, we should ensure
516 // it's registered as closed. 526 // it's registered as closed.
517 mSearchPanelDelegate.peekPanel(stateChangeReason); 527 mSearchPanelDelegate.peekPanel(stateChangeReason);
518 528
519 // Note: now that the contextual search has properly started, set the pr omo involvement. 529 // Note: now that the contextual search has properly started, set the pr omo involvement.
520 if (mPolicy.isPromoAvailable()) { 530 if (mPolicy.isPromoAvailable()) {
521 mIsShowingPromo = true; 531 mIsShowingPromo = true;
522 mDidLogPromoOutcome = false; 532 mDidLogPromoOutcome = false;
(...skipping 558 matching lines...) Expand 10 before | Expand all | Expand 10 after
1081 ? entry.getUrl() : searchContentViewCore.getWebContents().getUrl (); 1091 ? entry.getUrl() : searchContentViewCore.getWebContents().getUrl ();
1082 return url; 1092 return url;
1083 } 1093 }
1084 1094
1085 @Override 1095 @Override
1086 public float getSearchContentViewVerticalScroll() { 1096 public float getSearchContentViewVerticalScroll() {
1087 return mSearchPanelDelegate.getContentViewCore() != null 1097 return mSearchPanelDelegate.getContentViewCore() != null
1088 ? mSearchPanelDelegate.getContentViewCore().computeVerticalScrol lOffset() : -1.f; 1098 ? mSearchPanelDelegate.getContentViewCore().computeVerticalScrol lOffset() : -1.f;
1089 } 1099 }
1090 1100
1091 /**
1092 * This is called when the search panel is shown or is hidden.
1093 * @param isVisible True if the panel is now visible.
1094 */
1095 public void onContentViewVisibilityChanged(boolean isVisible) {
1096 if (isVisible) {
1097 mWereSearchResultsSeen = true;
1098 // If there's no current request, then either a search term resoluti on
1099 // is in progress or we should do a verbatim search now.
1100 if (mSearchRequest == null
1101 && mPolicy.shouldCreateVerbatimRequest(mSelectionController,
1102 mNetworkCommunicator.getBasePageUrl())) {
1103 mSearchRequest = new ContextualSearchRequest(
1104 mSelectionController.getSelectedText());
1105 mDidStartLoadingResolvedSearchRequest = false;
1106 }
1107 if ((mSearchRequest != null && !mDidStartLoadingResolvedSearchReques t)
1108 || mShouldLoadDelayedSearch) {
1109 // mShouldLoadDelayedSearch is used in the long-press case to lo ad content. Since
1110 // content is now created and destroyed for each request, was im possible to know if
1111 // content was already loaded or recently needed to be; this is for the case where
1112 // it needed to be.
1113 mSearchRequest.setNormalPriority();
1114 loadSearchUrl();
1115 }
1116 mShouldLoadDelayedSearch = true;
1117 mPolicy.updateCountersForOpen();
1118 }
1119 }
1120
1121 @Override 1101 @Override
1122 public void preserveBasePageSelectionOnNextLossOfFocus() { 1102 public void preserveBasePageSelectionOnNextLossOfFocus() {
1123 ContentViewCore basePageContentView = getBaseContentView(); 1103 ContentViewCore basePageContentView = getBaseContentView();
1124 if (basePageContentView != null) { 1104 if (basePageContentView != null) {
1125 basePageContentView.preserveSelectionOnNextLossOfFocus(); 1105 basePageContentView.preserveSelectionOnNextLossOfFocus();
1126 } 1106 }
1127 } 1107 }
1128 1108
1129 @Override 1109 @Override
1130 public void dismissContextualSearchBar() { 1110 public void dismissContextualSearchBar() {
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
1242 1222
1243 private native long nativeInit(); 1223 private native long nativeInit();
1244 private native void nativeDestroy(long nativeContextualSearchManager); 1224 private native void nativeDestroy(long nativeContextualSearchManager);
1245 private native void nativeStartSearchTermResolutionRequest(long nativeContex tualSearchManager, 1225 private native void nativeStartSearchTermResolutionRequest(long nativeContex tualSearchManager,
1246 String selection, boolean useResolvedSearchTerm, ContentViewCore bas eContentViewCore, 1226 String selection, boolean useResolvedSearchTerm, ContentViewCore bas eContentViewCore,
1247 boolean maySendBasePageUrl); 1227 boolean maySendBasePageUrl);
1248 private native void nativeGatherSurroundingText(long nativeContextualSearchM anager, 1228 private native void nativeGatherSurroundingText(long nativeContextualSearchM anager,
1249 String selection, boolean useResolvedSearchTerm, ContentViewCore bas eContentViewCore, 1229 String selection, boolean useResolvedSearchTerm, ContentViewCore bas eContentViewCore,
1250 boolean maySendBasePageUrl); 1230 boolean maySendBasePageUrl);
1251 } 1231 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698