summaryrefslogtreecommitdiffstats
path: root/core/java/android/app/ApplicationThreadNative.java
diff options
context:
space:
mode:
authorCraig Mautner <cmautner@google.com>2014-07-24 15:12:54 -0700
committerCraig Mautner <cmautner@google.com>2014-07-25 01:35:02 +0000
commit8746a478abcfb3b0d73b156232051af1e8d21ce2 (patch)
tree486f71a97dc3d5abd13d70ed6f72f964cf76a967 /core/java/android/app/ApplicationThreadNative.java
parentcfec0fbacb4038f39170cef816e7c597a6fc5eb2 (diff)
downloadframeworks_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.java18
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();
+ }
}