Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java |
index 2edbf6eaf404192a0a77899c15165133e9f358f4..66507712f44b7ebf345c561abb48cbd3f0ebc8bc 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java |
@@ -55,6 +55,8 @@ import org.chromium.ui.base.PageTransition; |
import java.util.concurrent.TimeUnit; |
+import jp.tomorrowkey.android.gifplayer.BaseGifImage; |
+ |
/** |
* Provides functionality when the user interacts with the NTP. |
*/ |
@@ -87,6 +89,7 @@ public class NewTabPage |
private boolean mSearchProviderHasLogo; |
private final boolean mOptOutPromoShown; |
private String mOnLogoClickUrl; |
+ private String mAnimatedLogoUrl; |
private FakeboxDelegate mFakeboxDelegate; |
// The timestamp at which the constructor was called. |
@@ -350,10 +353,20 @@ public class NewTabPage |
} |
@Override |
- public void openLogoLink() { |
+ public void onLogoClicked(boolean isAnimatedLogoShowing) { |
if (mIsDestroyed) return; |
- if (mOnLogoClickUrl == null) return; |
- mTab.loadUrl(new LoadUrlParams(mOnLogoClickUrl, PageTransition.LINK)); |
+ |
+ if (!isAnimatedLogoShowing && mAnimatedLogoUrl != null) { |
+ mLogoBridge.getAnimatedLogo(new LogoBridge.AnimatedLogoCallback() { |
+ @Override |
+ public void onAnimatedLogoAvailable(BaseGifImage animatedLogoImage) { |
+ if (mIsDestroyed) return; |
+ mNewTabPageView.playAnimatedLogo(animatedLogoImage); |
+ } |
+ }, mAnimatedLogoUrl); |
+ } else if (mOnLogoClickUrl != null) { |
+ mTab.loadUrl(new LoadUrlParams(mOnLogoClickUrl, PageTransition.LINK)); |
+ } |
} |
@Override |
@@ -364,6 +377,7 @@ public class NewTabPage |
public void onLogoAvailable(Logo logo, boolean fromCache) { |
if (mIsDestroyed) return; |
mOnLogoClickUrl = logo != null ? logo.onClickUrl : null; |
+ mAnimatedLogoUrl = logo != null ? logo.animatedLogoUrl : null; |
logoObserver.onLogoAvailable(logo, fromCache); |
} |
}; |