From d94df45b3d1ab4004ef517acfc56a9310330f8d8 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Wed, 16 Feb 2011 18:53:31 -0800 Subject: Rework thumbnail API to not suffer from IPC failures. Thumbnails are now requested separately, so we don't exceed the IPC buffer size limit. Also implement issue #3349553: Please provide a hook to intercept fragment-breadcrumb clicks And maybe fix issue #3439199: Music Notification does not turn on when app switching out of Music app Change-Id: Ie939e78cc8ded07b18112760e053185947549f61 --- core/java/android/app/ActivityManagerNative.java | 29 ++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'core/java/android/app/ActivityManagerNative.java') diff --git a/core/java/android/app/ActivityManagerNative.java b/core/java/android/app/ActivityManagerNative.java index c095c069918b..d3d379294789 100644 --- a/core/java/android/app/ActivityManagerNative.java +++ b/core/java/android/app/ActivityManagerNative.java @@ -442,6 +442,20 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM return true; } + case GET_TASK_THUMBNAIL_TRANSACTION: { + data.enforceInterface(IActivityManager.descriptor); + int id = data.readInt(); + Bitmap bm = getTaskThumbnail(id); + reply.writeNoException(); + if (bm != null) { + reply.writeInt(1); + bm.writeToParcel(reply, 0); + } else { + reply.writeInt(0); + } + return true; + } + case GET_SERVICES_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); int maxNum = data.readInt(); @@ -1816,6 +1830,21 @@ class ActivityManagerProxy implements IActivityManager reply.recycle(); return list; } + public Bitmap getTaskThumbnail(int id) throws RemoteException { + Parcel data = Parcel.obtain(); + Parcel reply = Parcel.obtain(); + data.writeInterfaceToken(IActivityManager.descriptor); + data.writeInt(id); + mRemote.transact(GET_TASK_THUMBNAIL_TRANSACTION, data, reply, 0); + reply.readException(); + Bitmap bm = null; + if (reply.readInt() != 0) { + bm = Bitmap.CREATOR.createFromParcel(reply); + } + data.recycle(); + reply.recycle(); + return bm; + } public List getServices(int maxNum, int flags) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); -- cgit v1.2.3