| Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoBridge.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoBridge.java
|
| index cf2937d62c70aefdcfc75c4d139763be192ad4a1..51c0f1fc7bbd21b290bfff4e92428ed40e5d4b10 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoBridge.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoBridge.java
|
| @@ -9,6 +9,8 @@ import android.graphics.Bitmap;
|
| import org.chromium.base.annotations.CalledByNative;
|
| import org.chromium.chrome.browser.profiles.Profile;
|
|
|
| +import jp.tomorrowkey.android.gifplayer.BaseGifImage;
|
| +
|
| /**
|
| * Provides access to the search provider's logo via the C++ LogoService.
|
| */
|
| @@ -33,10 +35,16 @@ class LogoBridge {
|
| */
|
| public final String altText;
|
|
|
| - Logo(Bitmap image, String onClickUrl, String altText) {
|
| + /**
|
| + * The URL to download animated GIF logo. If null, there is no animated logo to download.
|
| + */
|
| + public final String animatedLogoUrl;
|
| +
|
| + Logo(Bitmap image, String onClickUrl, String altText, String animatedLogoUrl) {
|
| this.image = image;
|
| this.onClickUrl = onClickUrl;
|
| this.altText = altText;
|
| + this.animatedLogoUrl = animatedLogoUrl;
|
| }
|
| }
|
|
|
| @@ -55,6 +63,20 @@ class LogoBridge {
|
| void onLogoAvailable(Logo logo, boolean fromCache);
|
| }
|
|
|
| + /**
|
| + * A callback that is called when the animated logo is successfully downloaded.
|
| + */
|
| + interface AnimatedLogoCallback {
|
| +
|
| + /**
|
| + * Called when the animated GIF logo is successfully downloaded.
|
| + *
|
| + * @param animatedLogoImage The {@link BaseGifImage} representing the animated logo.
|
| + */
|
| + @CalledByNative("AnimatedLogoCallback")
|
| + void onAnimatedLogoAvailable(BaseGifImage animatedLogoImage);
|
| + }
|
| +
|
| private long mNativeLogoBridge;
|
|
|
| /**
|
| @@ -87,12 +109,30 @@ class LogoBridge {
|
| nativeGetCurrentLogo(mNativeLogoBridge, logoObserver);
|
| }
|
|
|
| + /**
|
| + * Downloads an animated GIF logo. The given callback will not be called if the download failed
|
| + * or there is already an ongoing url fetching for the same url.
|
| + *
|
| + * @param callback The callback to be called when the animated logo is successfully downloaded.
|
| + * @param animatedLogoUrl The url from which to download the animated GIF logo.
|
| + */
|
| + void getAnimatedLogo(AnimatedLogoCallback callback, String animatedLogoUrl) {
|
| + nativeGetAnimatedLogo(mNativeLogoBridge, callback, animatedLogoUrl);
|
| + }
|
| +
|
| + @CalledByNative
|
| + private static Logo createLogo(Bitmap image, String onClickUrl, String altText, String gifUrl) {
|
| + return new Logo(image, onClickUrl, altText, gifUrl);
|
| + }
|
| +
|
| @CalledByNative
|
| - private static Logo createLogo(Bitmap image, String onClickUrl, String altText) {
|
| - return new Logo(image, onClickUrl, altText);
|
| + private static BaseGifImage createGifImage(byte[] bytes) {
|
| + return new BaseGifImage(bytes);
|
| }
|
|
|
| private native long nativeInit(Profile profile);
|
| private native void nativeGetCurrentLogo(long nativeLogoBridge, LogoObserver logoObserver);
|
| + private native void nativeGetAnimatedLogo(long nativeLogoBridge, AnimatedLogoCallback callback,
|
| + String gifUrl);
|
| private native void nativeDestroy(long nativeLogoBridge);
|
| }
|
|
|