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

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

Issue 2449653002: [Contextual Search] Add support for a static icon (Closed)
Patch Set: Changes from donnd@ review Created 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchImageControl.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchImageControl.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchImageControl.java
index e2f24f919c82a9f714f6427260b7226de6869112..aeafcf08b2f03f54828ede8675f8ece35423cc1f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchImageControl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchImageControl.java
@@ -22,7 +22,7 @@ public class ContextualSearchImageControl
* Animation properties.
*/
protected enum AnimationType {
- THUMBNAIL_VISIBILITY
+ STATIC_IMAGE_VISIBILITY
}
/** The current context. */
@@ -62,84 +62,79 @@ public class ContextualSearchImageControl
}
// ============================================================================================
- // Thumbnail
+ // Static Icon
// ============================================================================================
/**
- * The URL of the thumbnail to display.
+ * The resource id of the static icon to display.
*/
- private String mThumbnailUrl;
+ private int mStaticIconResourceId;
/**
- * The height and width of the thumbnail.
+ * Whether the static icon is visible.
*/
- private int mThumbnailSize;
+ private boolean mStaticIconVisible;
/**
- * Whether the thumbnail is visible.
+ * @param resId The resource id of the static icon to display.
*/
- private boolean mThumbnailVisible;
+ public void setStaticIconResourceId(int resId) {
+ mStaticIconResourceId = resId;
+ mStaticIconVisible = true;
+ animateStaticImageVisibility(true);
+ }
/**
- * The thumbnail visibility percentage, which dictates how and where to draw the thumbnail.
- * The thumbnail is not visible at all at 0.f and completely visible at 1.f.
+ * @return The resource id of the static icon to display.
*/
- private float mThumbnailVisibilityPercentage = 0.f;
+ public int getStaticIconResourceId() {
+ return mStaticIconResourceId;
+ }
/**
- * @param thumbnailUrl The URL of the thumbnail to display
+ * @return Whether the static icon is visible.
*/
- public void setThumbnailUrl(String thumbnailUrl) {
- mThumbnailUrl = thumbnailUrl;
+ public boolean getStaticIconVisible() {
+ return mStaticIconVisible;
}
+ // ============================================================================================
+ // Thumbnail
+ // ============================================================================================
+
/**
- * @return The URL used to fetch a thumbnail to display in the Bar. Will return an empty string
- * if no thumbnail is available.
+ * The URL of the thumbnail to display.
*/
- public String getThumbnailUrl() {
- return mThumbnailUrl != null ? mThumbnailUrl : "";
- }
+ private String mThumbnailUrl;
/**
- * Hides the thumbnail if it is visible and makes the icon sprite visible. Also resets the
- * thumbnail URL.
- * @param animate Whether hiding the thumbnail should be animated.
+ * Whether the thumbnail is visible.
*/
- public void hideThumbnail(boolean animate) {
- getIconSpriteControl().setIsVisible(true);
- if (mThumbnailVisible && animate) {
- animateThumbnailVisibility(false);
- } else {
- mOverlayPanelAnimation.cancelAnimation(this, AnimationType.THUMBNAIL_VISIBILITY);
- onThumbnailHidden();
- }
- }
+ private boolean mThumbnailVisible;
/**
- * @return The height and width of the thumbnail in px.
+ * @param thumbnailUrl The URL of the thumbnail to display
*/
- public int getThumbnailSize() {
- if (mThumbnailSize == 0) {
- mThumbnailSize = mContext.getResources().getDimensionPixelSize(
- R.dimen.contextual_search_thumbnail_size);
- }
- return mThumbnailSize;
+ public void setThumbnailUrl(String thumbnailUrl) {
+ // If a static icon is showing, the thumbnail should not be shown.
+ if (mStaticIconVisible) return;
+
+ mThumbnailUrl = thumbnailUrl;
}
/**
- * @return Whether the thumbnail is visible.
+ * @return The URL used to fetch a thumbnail to display in the Bar. Will return an empty string
+ * if no thumbnail is available.
*/
- public boolean getThumbnailVisible() {
- return mThumbnailVisible;
+ public String getThumbnailUrl() {
+ return mThumbnailUrl != null ? mThumbnailUrl : "";
}
/**
- * @return The thumbnail visibility percentage, which dictates how and where to draw the
- * thumbnail. The thumbnail is not visible at all at 0.f and completely visible at 1.f.
+ * @return Whether the thumbnail is visible.
*/
- public float getThumbnailVisibilityPercentage() {
- return mThumbnailVisibilityPercentage;
+ public boolean getThumbnailVisible() {
+ return mThumbnailVisible;
}
/**
@@ -154,52 +149,108 @@ public class ContextualSearchImageControl
// TODO(twellington): if the icon sprite is animating wait to start the thumbnail visibility
// animation.
- animateThumbnailVisibility(true);
+ animateStaticImageVisibility(true);
+ }
+
+ // ============================================================================================
+ // Static Image -- either a thumbnail or static icon
+ // ============================================================================================
+
+ /**
+ * The height and width of the static image.
+ */
+ private int mStaticImageSize;
+
+ /**
+ * The static image visibility percentage, which dictates how and where to draw the static
+ * image. The static image is not visible at all at 0.f and completely visible at 1.f.
+ */
+ private float mStaticImageVisibilityPercentage = 0.f;
+
+ /**
+ * Hides the static image if it is visible and makes the icon sprite visible. Also resets the
+ * thumbnail URL and static icon resource id.
+ * @param animate Whether hiding the thumbnail should be animated.
+ */
+ public void hideStaticIcon(boolean animate) {
+ getIconSpriteControl().setIsVisible(true);
+ if ((mThumbnailVisible || mStaticIconVisible) && animate) {
+ animateStaticImageVisibility(false);
+ } else {
+ mOverlayPanelAnimation.cancelAnimation(this, AnimationType.STATIC_IMAGE_VISIBILITY);
+ onStaticImageHidden();
+ }
+ }
+
+ /**
+ * @return The height and width of the static image in px.
+ */
+ public int getStaticImageSize() {
+ if (mStaticImageSize == 0) {
+ mStaticImageSize = mContext.getResources().getDimensionPixelSize(
+ R.dimen.contextual_search_static_image_size);
+ }
+ return mStaticImageSize;
+ }
+
+ /**
+ * @return The static image visibility percentage, which dictates how and where to draw the
+ * static image. The static image is not visible at all at 0.f and completely visible at
+ * 1.f. The static image may be either a thumbnail or static icon.
+ */
+ public float getStaticImageVisibilityPercentage() {
+ return mStaticImageVisibilityPercentage;
}
- private void onThumbnailHidden() {
+ /**
+ * Called when the static image finishes hiding to reset thumbnail and static icon values.
+ */
+ private void onStaticImageHidden() {
+ mStaticIconResourceId = 0;
+ mStaticIconVisible = false;
+
mThumbnailUrl = "";
mThumbnailVisible = false;
getIconSpriteControl().setIsVisible(true);
- mThumbnailVisibilityPercentage = 0.f;
+ mStaticImageVisibilityPercentage = 0.f;
}
// ============================================================================================
// Thumbnail Animation
// ============================================================================================
- private Interpolator mThumbnailVisibilityInterpolator;
+ private Interpolator mStaticImageVisibilityInterpolator;
- private void animateThumbnailVisibility(boolean visible) {
- if (mThumbnailVisibilityInterpolator == null) {
- mThumbnailVisibilityInterpolator = PathInterpolatorCompat.create(0.4f, 0.f, 0.6f, 1.f);
+ private void animateStaticImageVisibility(boolean visible) {
+ if (mStaticImageVisibilityInterpolator == null) {
+ mStaticImageVisibilityInterpolator =
+ PathInterpolatorCompat.create(0.4f, 0.f, 0.6f, 1.f);
}
- mOverlayPanelAnimation.cancelAnimation(this, AnimationType.THUMBNAIL_VISIBILITY);
+ mOverlayPanelAnimation.cancelAnimation(this, AnimationType.STATIC_IMAGE_VISIBILITY);
float endValue = visible ? 1.f : 0.f;
- mOverlayPanelAnimation.addToAnimation(this, AnimationType.THUMBNAIL_VISIBILITY,
- mThumbnailVisibilityPercentage, endValue,
+ mOverlayPanelAnimation.addToAnimation(this, AnimationType.STATIC_IMAGE_VISIBILITY,
+ mStaticImageVisibilityPercentage, endValue,
OverlayPanelAnimation.BASE_ANIMATION_DURATION_MS, 0, false,
- mThumbnailVisibilityInterpolator);
+ mStaticImageVisibilityInterpolator);
}
@Override
public void setProperty(AnimationType prop, float val) {
- if (prop == AnimationType.THUMBNAIL_VISIBILITY) {
- mThumbnailVisibilityPercentage = val;
+ if (prop == AnimationType.STATIC_IMAGE_VISIBILITY) {
+ mStaticImageVisibilityPercentage = val;
}
}
@Override
public void onPropertyAnimationFinished(AnimationType prop) {
- if (prop == AnimationType.THUMBNAIL_VISIBILITY) {
- if (mThumbnailVisibilityPercentage == 0.f) {
- onThumbnailHidden();
+ if (prop == AnimationType.STATIC_IMAGE_VISIBILITY) {
+ if (mStaticImageVisibilityPercentage == 0.f) {
+ onStaticImageHidden();
} else {
getIconSpriteControl().setIsVisible(false);
}
}
}
-
}

Powered by Google App Engine
This is Rietveld 408576698