diff options
| author | Winson Chung <winsonc@google.com> | 2020-03-19 03:40:35 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-03-19 03:40:35 +0000 |
| commit | c2a7be7e3ca72653263dd6a092c0be5fa74600c3 (patch) | |
| tree | 4f54bbcaf0544fdbb6da780aa07e5aeb8ba21c44 /core/java | |
| parent | e356490e4710765eba37a54e8928671fd6f5ccb2 (diff) | |
| parent | 8a16890698f7a23a39bf8acc538203cb69324378 (diff) | |
Merge "Update some policy around multi-window windowing mode" into rvc-dev
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/app/ActivityOptions.java | 27 | ||||
| -rw-r--r-- | core/java/android/app/ITaskOrganizerController.aidl | 5 |
2 files changed, 32 insertions, 0 deletions
diff --git a/core/java/android/app/ActivityOptions.java b/core/java/android/app/ActivityOptions.java index 4aacf4879c43..7fd0211215c5 100644 --- a/core/java/android/app/ActivityOptions.java +++ b/core/java/android/app/ActivityOptions.java @@ -209,6 +209,12 @@ public class ActivityOptions { "android.activity.pendingIntentLaunchFlags"; /** + * See {@link #setTaskAlwaysOnTop}. + * @hide + */ + private static final String KEY_TASK_ALWAYS_ON_TOP = "android.activity.alwaysOnTop"; + + /** * See {@link #setTaskOverlay}. * @hide */ @@ -337,6 +343,7 @@ public class ActivityOptions { private int mSplitScreenCreateMode = SPLIT_SCREEN_CREATE_MODE_TOP_OR_LEFT; private boolean mLockTaskMode = false; private boolean mDisallowEnterPictureInPictureWhileLaunching; + private boolean mTaskAlwaysOnTop; private boolean mTaskOverlay; private boolean mTaskOverlayCanResume; private boolean mAvoidMoveToFront; @@ -971,6 +978,7 @@ public class ActivityOptions { mLaunchActivityType = opts.getInt(KEY_LAUNCH_ACTIVITY_TYPE, ACTIVITY_TYPE_UNDEFINED); mLaunchTaskId = opts.getInt(KEY_LAUNCH_TASK_ID, -1); mPendingIntentLaunchFlags = opts.getInt(KEY_PENDING_INTENT_LAUNCH_FLAGS, 0); + mTaskAlwaysOnTop = opts.getBoolean(KEY_TASK_ALWAYS_ON_TOP, false); mTaskOverlay = opts.getBoolean(KEY_TASK_OVERLAY, false); mTaskOverlayCanResume = opts.getBoolean(KEY_TASK_OVERLAY_CAN_RESUME, false); mAvoidMoveToFront = opts.getBoolean(KEY_AVOID_MOVE_TO_FRONT, false); @@ -1300,6 +1308,22 @@ public class ActivityOptions { } /** + * Set's whether the task for the activity launched with this option should always be on top. + * @hide + */ + @TestApi + public void setTaskAlwaysOnTop(boolean alwaysOnTop) { + mTaskAlwaysOnTop = alwaysOnTop; + } + + /** + * @hide + */ + public boolean getTaskAlwaysOnTop() { + return mTaskAlwaysOnTop; + } + + /** * Set's whether the activity launched with this option should be a task overlay. That is the * activity will always be the top activity of the task. * @param canResume {@code false} if the task will also not be moved to the front of the stack. @@ -1556,6 +1580,9 @@ public class ActivityOptions { if (mPendingIntentLaunchFlags != 0) { b.putInt(KEY_PENDING_INTENT_LAUNCH_FLAGS, mPendingIntentLaunchFlags); } + if (mTaskAlwaysOnTop) { + b.putBoolean(KEY_TASK_ALWAYS_ON_TOP, mTaskAlwaysOnTop); + } if (mTaskOverlay) { b.putBoolean(KEY_TASK_OVERLAY, mTaskOverlay); } diff --git a/core/java/android/app/ITaskOrganizerController.aidl b/core/java/android/app/ITaskOrganizerController.aidl index 9d6c3d64aaf2..a448e132bcc9 100644 --- a/core/java/android/app/ITaskOrganizerController.aidl +++ b/core/java/android/app/ITaskOrganizerController.aidl @@ -32,6 +32,11 @@ interface ITaskOrganizerController { void registerTaskOrganizer(ITaskOrganizer organizer, int windowingMode); /** + * Unregisters a previously registered task organizer. + */ + void unregisterTaskOrganizer(ITaskOrganizer organizer); + + /** * Apply multiple WindowContainer operations at once. * @param organizer If non-null this transaction will use the synchronization * scheme described in BLASTSyncEngine.java. The SurfaceControl transaction |
