diff options
author | Craig Mautner <cmautner@google.com> | 2014-07-24 15:12:54 -0700 |
---|---|---|
committer | Craig Mautner <cmautner@google.com> | 2014-07-25 01:35:02 +0000 |
commit | 8746a478abcfb3b0d73b156232051af1e8d21ce2 (patch) | |
tree | 486f71a97dc3d5abd13d70ed6f72f964cf76a967 /core/java/android/app/ApplicationThreadNative.java | |
parent | cfec0fbacb4038f39170cef816e7c597a6fc5eb2 (diff) | |
download | frameworks_base-8746a478abcfb3b0d73b156232051af1e8d21ce2.zip frameworks_base-8746a478abcfb3b0d73b156232051af1e8d21ce2.tar.gz frameworks_base-8746a478abcfb3b0d73b156232051af1e8d21ce2.tar.bz2 |
Create end of animation callback for Activity
Activities cannot draw while their entering animations are active.
This change introduces a callback, onEnterAnimationComplete() so
that activities can know when their draws will be effective.
Fixes bug 13658460.
Change-Id: Ic48540cd4c7e37538f10cb2dc0852aa3f55d11e1
Diffstat (limited to 'core/java/android/app/ApplicationThreadNative.java')
-rw-r--r-- | core/java/android/app/ApplicationThreadNative.java | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/core/java/android/app/ApplicationThreadNative.java b/core/java/android/app/ApplicationThreadNative.java index 0b4510f..e9d4bd9 100644 --- a/core/java/android/app/ApplicationThreadNative.java +++ b/core/java/android/app/ApplicationThreadNative.java @@ -666,6 +666,15 @@ public abstract class ApplicationThreadNative extends Binder reply.writeNoException(); return true; } + + case ENTER_ANIMATION_COMPLETE_TRANSACTION: + { + data.enforceInterface(IApplicationThread.descriptor); + IBinder token = data.readStrongBinder(); + scheduleEnterAnimationComplete(token); + reply.writeNoException(); + return true; + } } return super.onTransact(code, data, reply, flags); @@ -1342,4 +1351,13 @@ class ApplicationThreadProxy implements IApplicationThread { mRemote.transact(BACKGROUND_MEDIA_PLAYING_CHANGED_TRANSACTION, data, null, IBinder.FLAG_ONEWAY); data.recycle(); } + + @Override + public void scheduleEnterAnimationComplete(IBinder token) throws RemoteException { + Parcel data = Parcel.obtain(); + data.writeInterfaceToken(IApplicationThread.descriptor); + data.writeStrongBinder(token); + mRemote.transact(ENTER_ANIMATION_COMPLETE_TRANSACTION, data, null, IBinder.FLAG_ONEWAY); + data.recycle(); + } } |