diff options
| author | Craig Mautner <cmautner@google.com> | 2014-07-02 15:04:09 -0700 |
|---|---|---|
| committer | George Mount <mount@google.com> | 2014-07-07 12:48:50 -0700 |
| commit | eb8abf7207aa118065999514f9248affbdd94de1 (patch) | |
| tree | 692d600948fdc214b59eb042b4802459a05f163b /core/java/android/app/ApplicationThreadNative.java | |
| parent | d1ed9b3ea74870fae3e666b4a3b26d8281999d8a (diff) | |
Introduce onNewActivityOptions for return activity
When an activity that is already translucent returns to the
previous activity using a scene transition the receiving activity
did not receive its ActivityOptions for its side of the animation.
The new method onNewActivityOptions() delivers those options.
Fixes bug 14869070.
Change-Id: I09b136b3213aae5d3521894e17a7500ac793f3d2
Diffstat (limited to 'core/java/android/app/ApplicationThreadNative.java')
| -rw-r--r-- | core/java/android/app/ApplicationThreadNative.java | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/core/java/android/app/ApplicationThreadNative.java b/core/java/android/app/ApplicationThreadNative.java index 5998d7a0d16c..6dead08d2a8b 100644 --- a/core/java/android/app/ApplicationThreadNative.java +++ b/core/java/android/app/ApplicationThreadNative.java @@ -611,6 +611,16 @@ public abstract class ApplicationThreadNative extends Binder return true; } + case SCHEDULE_ON_NEW_ACTIVITY_OPTIONS_TRANSACTION: + { + data.enforceInterface(IApplicationThread.descriptor); + IBinder token = data.readStrongBinder(); + ActivityOptions options = new ActivityOptions(data.readBundle()); + scheduleOnNewActivityOptions(token, options); + reply.writeNoException(); + return true; + } + case SET_PROCESS_STATE_TRANSACTION: { data.enforceInterface(IApplicationThread.descriptor); @@ -1251,7 +1261,20 @@ class ApplicationThreadProxy implements IApplicationThread { data.writeInterfaceToken(IApplicationThread.descriptor); data.writeStrongBinder(token); data.writeInt(timeout ? 1 : 0); - mRemote.transact(SCHEDULE_TRANSLUCENT_CONVERSION_COMPLETE_TRANSACTION, data, null, IBinder.FLAG_ONEWAY); + mRemote.transact(SCHEDULE_TRANSLUCENT_CONVERSION_COMPLETE_TRANSACTION, data, null, + IBinder.FLAG_ONEWAY); + data.recycle(); + } + + @Override + public void scheduleOnNewActivityOptions(IBinder token, ActivityOptions options) + throws RemoteException { + Parcel data = Parcel.obtain(); + data.writeInterfaceToken(IApplicationThread.descriptor); + data.writeStrongBinder(token); + data.writeBundle(options == null ? null : options.toBundle()); + mRemote.transact(SCHEDULE_ON_NEW_ACTIVITY_OPTIONS_TRANSACTION, data, null, + IBinder.FLAG_ONEWAY); data.recycle(); } |
