summaryrefslogtreecommitdiff
path: root/core/java/android/app/ApplicationThreadNative.java
diff options
context:
space:
mode:
authorCraig Mautner <cmautner@google.com>2014-07-02 15:04:09 -0700
committerGeorge Mount <mount@google.com>2014-07-07 12:48:50 -0700
commiteb8abf7207aa118065999514f9248affbdd94de1 (patch)
tree692d600948fdc214b59eb042b4802459a05f163b /core/java/android/app/ApplicationThreadNative.java
parentd1ed9b3ea74870fae3e666b4a3b26d8281999d8a (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.java25
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();
}