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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel.java

Issue 2322793002: [Contextual Search] Fetch and display thumbnails returned in resolution response (Closed)
Patch Set: std::unique_ptr Created 4 years, 3 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/compositor/bottombar/contextualsearch/ContextualSearchPanel.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel.java
index f2d836b303e8352ca60e52cca77d0c24dfab7b4b..243f2754d1cfc45387ff9cbff867efe30099540b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel.java
@@ -487,6 +487,9 @@ public class ContextualSearchPanel extends OverlayPanel {
* @param searchTerm The string that represents the search term.
*/
public void setSearchTerm(String searchTerm) {
+ mThumbnailUrl = "";
+ mThumbnailVisible = false;
+
getSearchBarControl().setSearchTerm(searchTerm);
mPanelMetrics.onSearchRequestStarted();
}
@@ -497,6 +500,9 @@ public class ContextualSearchPanel extends OverlayPanel {
* @param end The portion of the context from the selection to its end.
*/
public void setSearchContext(String selection, String end) {
+ mThumbnailUrl = "";
+ mThumbnailVisible = false;
+
getSearchBarControl().setSearchContext(selection, end);
mPanelMetrics.onSearchRequestStarted();
}
@@ -513,11 +519,13 @@ public class ContextualSearchPanel extends OverlayPanel {
/**
* Handles showing the resolved search term in the SearchBar.
* @param searchTerm The string that represents the search term.
+ * @param thumbnailUrl The URL of the thumbnail to display.
*/
- public void onSearchTermResolved(String searchTerm) {
+ public void onSearchTermResolved(String searchTerm, String thumbnailUrl) {
mPanelMetrics.onSearchTermResolved();
getSearchBarControl().setSearchTerm(searchTerm);
getSearchBarControl().animateSearchTermResolution();
+ mThumbnailUrl = thumbnailUrl;
}
// ============================================================================================
@@ -674,13 +682,75 @@ public class ContextualSearchPanel extends OverlayPanel {
/**
* @param shouldAnimateIconSprite Whether the search provider icon sprite should be animated.
- * @param isAnimationDisabledByTrial Whether animating the search provider icon is disabled by a
- * field trial.
*/
- public void setShouldAnimateIconSprite(boolean shouldAnimateIconSprite,
- boolean isAnimationDisabledByTrial) {
- getIconSpriteControl().setShouldAnimateAppearance(shouldAnimateIconSprite,
- isAnimationDisabledByTrial);
+ public void setShouldAnimateIconSprite(boolean shouldAnimateIconSprite) {
+ getIconSpriteControl().setShouldAnimateAppearance(shouldAnimateIconSprite);
+ }
+
+ // ============================================================================================
+ // Thumbnail
+ // ============================================================================================
+
+ // TODO(twellington): The thumbnail and icon sprite should probably be moved to
+ // ContextualSearchBarControl since they are displayed in the bar. This
+ // would also help facilitate showing the thumbnail and a caption at the
+ // same time.
+
+ /**
+ * The URL of the thumbnail to display.
+ */
+ private String mThumbnailUrl;
+
+ /**
+ * The height and width of the thumbnail.
+ */
+ private int mThumbnailSize;
+
+ /**
+ * Whether the thumbnail is visible.
+ */
+ private boolean mThumbnailVisible;
+
+ /**
+ * @return The URL used to fetch a thumbnail to display in the SearchBar. Will return an empty
+ * string if no thumbnail is available.
+ */
+ public String getThumbnailUrl() {
+ return mThumbnailUrl != null ? mThumbnailUrl : "";
+ }
+
+ /**
+ * @return The height and width of the thumbnail in px.
+ */
+ public int getThumbnailSize() {
+ if (mThumbnailSize == 0) {
+ mThumbnailSize = mContext.getResources().getDimensionPixelSize(
+ R.dimen.contextual_search_thumbnail_size);
+ }
+ return mThumbnailSize;
+ }
+
+ /**
+ * @return Whether the thumbnail is visible.
+ */
+ public boolean getThumbnailVisible() {
+ // TODO(twellington): The thumbnail and caption should become visible at the same time,
+ // possibly by using an observer that is notified when the caption
+ // snapshot is captured.
+ // Once the thumbnail has been captured, an animation for both
+ // the thumbnail and caption should be started.
+ return mThumbnailVisible;
+ }
+
+
+ /**
+ * Called when the thumbnail has finished being fetched.
+ * @param success Whether fetching the thumbnail was successful.
+ */
+ public void onThumbnailFetched(boolean success) {
+ mThumbnailVisible = success;
+ if (mThumbnailVisible) mIconSpriteControl.setIsVisible(false);
+ if (success) requestUpdate();
}
// ============================================================================================

Powered by Google App Engine
This is Rietveld 408576698