Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java |
| index 045aef059bd1ec91fbbf1d01033d8bd8ceddde3f..cae75f069da2037d2448286e883d4f5abacda9ad 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java |
| @@ -12,6 +12,7 @@ import android.content.Intent; |
| import android.content.ServiceConnection; |
| import android.content.pm.PackageManager; |
| import android.content.res.Resources; |
| +import android.graphics.Bitmap; |
| import android.graphics.Point; |
| import android.net.ConnectivityManager; |
| import android.net.Uri; |
| @@ -23,6 +24,8 @@ import android.os.IBinder; |
| import android.os.Process; |
| import android.os.RemoteException; |
| import android.os.SystemClock; |
| +import android.support.customtabs.CustomTabsCallback; |
|
Yusuf
2015/08/21 00:07:37
why is this one needed?
Ian Wen
2015/08/21 17:01:24
Removed.
|
| +import android.support.customtabs.CustomTabsIntent; |
| import android.support.customtabs.ICustomTabsCallback; |
| import android.support.customtabs.ICustomTabsService; |
| import android.text.TextUtils; |
| @@ -44,6 +47,7 @@ import org.chromium.chrome.browser.device.DeviceClassManager; |
| import org.chromium.chrome.browser.init.ChromeBrowserInitializer; |
| import org.chromium.chrome.browser.prerender.ExternalPrerenderHandler; |
| import org.chromium.chrome.browser.profiles.Profile; |
| +import org.chromium.chrome.browser.util.IntentUtils; |
| import org.chromium.content.browser.ChildProcessLauncher; |
| import org.chromium.content_public.browser.WebContents; |
| import org.chromium.content_public.common.Referrer; |
| @@ -320,6 +324,30 @@ public class CustomTabsConnection extends ICustomTabsService.Stub { |
| return null; |
| } |
| + @Override |
| + public boolean updateToolbarUI(final ICustomTabsCallback callback, Bundle bundle) { |
| + final Bundle actionButtonBundle = IntentUtils.safeGetBundle(bundle, |
| + CustomTabsIntent.EXTRA_ACTION_BUTTON_BUNDLE); |
| + if (actionButtonBundle == null) return false; |
| + |
| + final Bitmap bitmap = ActionButtonParams.tryParseBitmapFromBundle(mApplication, |
|
Benoit L
2015/08/21 11:31:15
Can't you do:
final ActionButtonParams actionButt
Ian Wen
2015/08/21 17:01:24
The reason that I cannot construct an actionButton
|
| + actionButtonBundle); |
| + final String description = ActionButtonParams |
| + .tryParseDescriptionFromBundle(actionButtonBundle); |
| + if (bitmap == null || description == null) return false; |
| + |
| + final boolean[] didSucceed = {true}; |
|
Yusuf
2015/08/21 00:07:37
use a Callable<Boolean> instead of this.
Benoit L
2015/08/21 11:31:15
Better suggestion than mine, indeed.
Sorry about t
Ian Wen
2015/08/21 17:01:24
Done.
|
| + |
| + ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
| + @Override |
| + public void run() { |
| + didSucceed[0] = CustomTabActivity.updateActionButton(callback.asBinder(), bitmap, |
| + description); |
| + } |
| + }); |
| + return didSucceed[0]; |
| + } |
| + |
| /** |
| * Registers a launch of a |url| for a given |session|. |
| * |