| 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.text.TextUtils; | 7 import android.text.TextUtils; |
| 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 462 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 473 mIsShowingPeekPromo = mPolicy.isPeekPromoAvailable(); | 473 mIsShowingPeekPromo = mPolicy.isPeekPromoAvailable(); |
| 474 if (mIsShowingPeekPromo) { | 474 if (mIsShowingPeekPromo) { |
| 475 mSearchPanel.showPeekPromo(); | 475 mSearchPanel.showPeekPromo(); |
| 476 mPolicy.registerPeekPromoSeen(); | 476 mPolicy.registerPeekPromoSeen(); |
| 477 } | 477 } |
| 478 } | 478 } |
| 479 | 479 |
| 480 // Note: whether the sprite should be animated or not needs to be set be
fore the call to | 480 // Note: whether the sprite should be animated or not needs to be set be
fore the call to |
| 481 // peekPanel(). If the sprite should be animated, the animation will beg
in after the panel | 481 // peekPanel(). If the sprite should be animated, the animation will beg
in after the panel |
| 482 // finishes peeking. If it should not be animated, the icon will be draw
n right away. | 482 // finishes peeking. If it should not be animated, the icon will be draw
n right away. |
| 483 mSearchPanel.setShouldAnimateIconSprite(mPolicy.shouldAnimateSearchProvi
derIcon(), | 483 mSearchPanel.setShouldAnimateIconSprite(mPolicy.shouldAnimateSearchProvi
derIcon()); |
| 484 ContextualSearchFieldTrial.areExtraSearchBarAnimationsDisabled()
); | |
| 485 | 484 |
| 486 // Note: now that the contextual search has properly started, set the pr
omo involvement. | 485 // Note: now that the contextual search has properly started, set the pr
omo involvement. |
| 487 if (mPolicy.isPromoAvailable()) { | 486 if (mPolicy.isPromoAvailable()) { |
| 488 mIsShowingPromo = true; | 487 mIsShowingPromo = true; |
| 489 mIsMandatoryPromo = mPolicy.isMandatoryPromoAvailable(); | 488 mIsMandatoryPromo = mPolicy.isMandatoryPromoAvailable(); |
| 490 mDidLogPromoOutcome = false; | 489 mDidLogPromoOutcome = false; |
| 491 mSearchPanel.setIsPromoActive(true, mIsMandatoryPromo); | 490 mSearchPanel.setIsPromoActive(true, mIsMandatoryPromo); |
| 492 mSearchPanel.setDidSearchInvolvePromo(); | 491 mSearchPanel.setDidSearchInvolvePromo(); |
| 493 } | 492 } |
| 494 | 493 |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 646 * @param searchTerm The term to use in our subsequent search. | 645 * @param searchTerm The term to use in our subsequent search. |
| 647 * @param displayText The text to display in our UX. | 646 * @param displayText The text to display in our UX. |
| 648 * @param alternateTerm The alternate term to display on the results page. | 647 * @param alternateTerm The alternate term to display on the results page. |
| 649 * @param mid the MID for an entity to use to trigger a Knowledge Panel, or
an empty string. | 648 * @param mid the MID for an entity to use to trigger a Knowledge Panel, or
an empty string. |
| 650 * A MID is a unique identifier for an entity in the Search Knowl
edge Graph. | 649 * A MID is a unique identifier for an entity in the Search Knowl
edge Graph. |
| 651 * @param selectionStartAdjust A positive number of characters that the star
t of the existing | 650 * @param selectionStartAdjust A positive number of characters that the star
t of the existing |
| 652 * selection should be expanded by. | 651 * selection should be expanded by. |
| 653 * @param selectionEndAdjust A positive number of characters that the end of
the existing | 652 * @param selectionEndAdjust A positive number of characters that the end of
the existing |
| 654 * selection should be expanded by. | 653 * selection should be expanded by. |
| 655 * @param contextLanguage The language of the original search term, or an em
pty string. | 654 * @param contextLanguage The language of the original search term, or an em
pty string. |
| 655 * @param thumbnailUrl The URL of the thumbnail to display in our UX. |
| 656 */ | 656 */ |
| 657 @CalledByNative | 657 @CalledByNative |
| 658 public void onSearchTermResolutionResponse(boolean isNetworkUnavailable, int
responseCode, | 658 public void onSearchTermResolutionResponse(boolean isNetworkUnavailable, int
responseCode, |
| 659 final String searchTerm, final String displayText, final String alte
rnateTerm, | 659 final String searchTerm, final String displayText, final String alte
rnateTerm, |
| 660 final String mid, boolean doPreventPreload, int selectionStartAdjust
, | 660 final String mid, boolean doPreventPreload, int selectionStartAdjust
, |
| 661 int selectionEndAdjust, final String contextLanguage) { | 661 int selectionEndAdjust, final String contextLanguage, final String t
humbnailUrl) { |
| 662 mNetworkCommunicator.handleSearchTermResolutionResponse(isNetworkUnavail
able, responseCode, | 662 mNetworkCommunicator.handleSearchTermResolutionResponse(isNetworkUnavail
able, responseCode, |
| 663 searchTerm, displayText, alternateTerm, mid, doPreventPreload, s
electionStartAdjust, | 663 searchTerm, displayText, alternateTerm, mid, doPreventPreload, s
electionStartAdjust, |
| 664 selectionEndAdjust, contextLanguage); | 664 selectionEndAdjust, contextLanguage, thumbnailUrl); |
| 665 } | 665 } |
| 666 | 666 |
| 667 @Override | 667 @Override |
| 668 public void handleSearchTermResolutionResponse(boolean isNetworkUnavailable,
int responseCode, | 668 public void handleSearchTermResolutionResponse(boolean isNetworkUnavailable,
int responseCode, |
| 669 String searchTerm, String displayText, String alternateTerm, String
mid, | 669 String searchTerm, String displayText, String alternateTerm, String
mid, |
| 670 boolean doPreventPreload, int selectionStartAdjust, int selectionEnd
Adjust, | 670 boolean doPreventPreload, int selectionStartAdjust, int selectionEnd
Adjust, |
| 671 String contextLanguage) { | 671 String contextLanguage, String thumbnailUrl) { |
| 672 // Show an appropriate message for what to search for. | 672 // Show an appropriate message for what to search for. |
| 673 String message; | 673 String message; |
| 674 boolean doLiteralSearch = false; | 674 boolean doLiteralSearch = false; |
| 675 if (isNetworkUnavailable) { | 675 if (isNetworkUnavailable) { |
| 676 // TODO(donnd): double-check that the network is really unavailable? | 676 // TODO(donnd): double-check that the network is really unavailable? |
| 677 message = mActivity.getResources().getString( | 677 message = mActivity.getResources().getString( |
| 678 R.string.contextual_search_network_unavailable); | 678 R.string.contextual_search_network_unavailable); |
| 679 } else if (!isHttpFailureCode(responseCode) && !TextUtils.isEmpty(displa
yText)) { | 679 } else if (!isHttpFailureCode(responseCode) && !TextUtils.isEmpty(displa
yText)) { |
| 680 message = displayText; | 680 message = displayText; |
| 681 } else if (!mPolicy.shouldShowErrorCodeInBar()) { | 681 } else if (!mPolicy.shouldShowErrorCodeInBar()) { |
| 682 message = mSelectionController.getSelectedText(); | 682 message = mSelectionController.getSelectedText(); |
| 683 doLiteralSearch = true; | 683 doLiteralSearch = true; |
| 684 } else { | 684 } else { |
| 685 message = mActivity.getResources().getString( | 685 message = mActivity.getResources().getString( |
| 686 R.string.contextual_search_error, responseCode); | 686 R.string.contextual_search_error, responseCode); |
| 687 doLiteralSearch = true; | 687 doLiteralSearch = true; |
| 688 } | 688 } |
| 689 mSearchPanel.onSearchTermResolved(message); | 689 thumbnailUrl = ContextualSearchFieldTrial.isNowOnTapBarIntegrationEnable
d() |
| 690 ? thumbnailUrl : ""; |
| 691 mSearchPanel.onSearchTermResolved(message, thumbnailUrl); |
| 690 | 692 |
| 691 // If there was an error, fall back onto a literal search for the select
ion. | 693 // If there was an error, fall back onto a literal search for the select
ion. |
| 692 // Since we're showing the panel, there must be a selection. | 694 // Since we're showing the panel, there must be a selection. |
| 693 if (doLiteralSearch) { | 695 if (doLiteralSearch) { |
| 694 searchTerm = mSelectionController.getSelectedText(); | 696 searchTerm = mSelectionController.getSelectedText(); |
| 695 alternateTerm = null; | 697 alternateTerm = null; |
| 696 doPreventPreload = true; | 698 doPreventPreload = true; |
| 697 } | 699 } |
| 698 if (!TextUtils.isEmpty(searchTerm)) { | 700 if (!TextUtils.isEmpty(searchTerm)) { |
| 699 // TODO(donnd): Instead of preloading, we should prefetch (ie the UR
L should not | 701 // TODO(donnd): Instead of preloading, we should prefetch (ie the UR
L should not |
| (...skipping 682 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1382 boolean maySendBasePageUrl); | 1384 boolean maySendBasePageUrl); |
| 1383 protected native void nativeGatherSurroundingText(long nativeContextualSearc
hManager, | 1385 protected native void nativeGatherSurroundingText(long nativeContextualSearc
hManager, |
| 1384 String selection, boolean useResolvedSearchTerm, WebContents baseWeb
Contents, | 1386 String selection, boolean useResolvedSearchTerm, WebContents baseWeb
Contents, |
| 1385 boolean maySendBasePageUrl); | 1387 boolean maySendBasePageUrl); |
| 1386 private native void nativeEnableContextualSearchJsApiForOverlay( | 1388 private native void nativeEnableContextualSearchJsApiForOverlay( |
| 1387 long nativeContextualSearchManager, WebContents overlayWebContents); | 1389 long nativeContextualSearchManager, WebContents overlayWebContents); |
| 1388 // Don't call these directly, instead call the private methods that cache th
e results. | 1390 // Don't call these directly, instead call the private methods that cache th
e results. |
| 1389 private native String nativeGetTargetLanguage(long nativeContextualSearchMan
ager); | 1391 private native String nativeGetTargetLanguage(long nativeContextualSearchMan
ager); |
| 1390 private native String nativeGetAcceptLanguages(long nativeContextualSearchMa
nager); | 1392 private native String nativeGetAcceptLanguages(long nativeContextualSearchMa
nager); |
| 1391 } | 1393 } |
| OLD | NEW |