summaryrefslogtreecommitdiff
path: root/core/java/android/app/ApplicationThreadNative.java
diff options
context:
space:
mode:
authorWale Ogunwale <ogunwale@google.com>2015-12-04 15:35:38 -0800
committerWale Ogunwale <ogunwale@google.com>2015-12-07 07:40:56 -0800
commit5f986095bed776c119d2f5452e0afeac3a437ea2 (patch)
treead50d476f4784fb5fcb603ac1118b2db9317bf94 /core/java/android/app/ApplicationThreadNative.java
parentc72b3101ee368d2a9943e4436ede679acfa38f92 (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.java42
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();
+ }
}