diff options
| author | Wale Ogunwale <ogunwale@google.com> | 2015-12-04 15:35:38 -0800 |
|---|---|---|
| committer | Wale Ogunwale <ogunwale@google.com> | 2015-12-07 07:40:56 -0800 |
| commit | 5f986095bed776c119d2f5452e0afeac3a437ea2 (patch) | |
| tree | ad50d476f4784fb5fcb603ac1118b2db9317bf94 /core/java/android/app/ApplicationThreadNative.java | |
| parent | c72b3101ee368d2a9943e4436ede679acfa38f92 (diff) | |
APIs for activity to know when its windowing/pip modes change
Added APIs that allow activities to ask the system if they are currently
in multi-window or picture-in-picture mode and also get notified when
their modes change.
Bug: 25509834
Bug: 25683717
Change-Id: I4b8c316a49940bd6a8b31a93b345f9fd725a4721
Diffstat (limited to 'core/java/android/app/ApplicationThreadNative.java')
| -rw-r--r-- | core/java/android/app/ApplicationThreadNative.java | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/core/java/android/app/ApplicationThreadNative.java b/core/java/android/app/ApplicationThreadNative.java index 44387deaddc1..5951c8d9c958 100644 --- a/core/java/android/app/ApplicationThreadNative.java +++ b/core/java/android/app/ApplicationThreadNative.java @@ -720,6 +720,24 @@ public abstract class ApplicationThreadNative extends Binder return true; } + case SCHEDULE_MULTI_WINDOW_MODE_CHANGED_TRANSACTION: + { + data.enforceInterface(IApplicationThread.descriptor); + final IBinder b = data.readStrongBinder(); + final boolean multiWindowMode = data.readInt() != 0; + scheduleMultiWindowModeChanged(b, multiWindowMode); + return true; + } + + case SCHEDULE_PICTURE_IN_PICTURE_MODE_CHANGED_TRANSACTION: + { + data.enforceInterface(IApplicationThread.descriptor); + final IBinder b = data.readStrongBinder(); + final boolean pipMode = data.readInt() != 0; + schedulePictureInPictureModeChanged(b, pipMode); + return true; + } + } return super.onTransact(code, data, reply, flags); @@ -1454,4 +1472,28 @@ class ApplicationThreadProxy implements IApplicationThread { IBinder.FLAG_ONEWAY); data.recycle(); } + + @Override + public final void scheduleMultiWindowModeChanged( + IBinder token, boolean multiWindowMode) throws RemoteException { + Parcel data = Parcel.obtain(); + data.writeInterfaceToken(IApplicationThread.descriptor); + data.writeStrongBinder(token); + data.writeInt(multiWindowMode ? 1 : 0); + mRemote.transact(SCHEDULE_MULTI_WINDOW_MODE_CHANGED_TRANSACTION, data, null, + IBinder.FLAG_ONEWAY); + data.recycle(); + } + + @Override + public final void schedulePictureInPictureModeChanged(IBinder token, boolean pipMode) + throws RemoteException { + Parcel data = Parcel.obtain(); + data.writeInterfaceToken(IApplicationThread.descriptor); + data.writeStrongBinder(token); + data.writeInt(pipMode ? 1 : 0); + mRemote.transact(SCHEDULE_PICTURE_IN_PICTURE_MODE_CHANGED_TRANSACTION, data, null, + IBinder.FLAG_ONEWAY); + data.recycle(); + } } |
