diff options
| author | Andrii Kulian <akulian@google.com> | 2020-04-10 12:44:38 -0700 |
|---|---|---|
| committer | Andrii Kulian <akulian@google.com> | 2020-04-15 12:21:24 -0700 |
| commit | 1cfcae8108c511ec0a28f413ae6c7062fcecc175 (patch) | |
| tree | a5c6b703cf883c7aac86c5cae8b79f4016b21ba1 /core/java/android/app/ActivityOptions.java | |
| parent | 9cc2e135ae4c893cbcbfb5b5cbaf208897bdbdbf (diff) | |
8/n Allow targeting task containers for activity launch
- Allow targeting task display area in ActivityOptions.
- Change LaunchParamsController to select preferred task display
area instead of display.
Bug: 152116619
Test: WM CTS and unit tests
Change-Id: I16ab96008e1ce03422f89a0609d3121051261fda
Diffstat (limited to 'core/java/android/app/ActivityOptions.java')
| -rw-r--r-- | core/java/android/app/ActivityOptions.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/core/java/android/app/ActivityOptions.java b/core/java/android/app/ActivityOptions.java index 7fd0211215c5..925b15deff29 100644 --- a/core/java/android/app/ActivityOptions.java +++ b/core/java/android/app/ActivityOptions.java @@ -51,6 +51,7 @@ import android.view.RemoteAnimationAdapter; import android.view.View; import android.view.ViewGroup; import android.view.Window; +import android.window.WindowContainerToken; import java.util.ArrayList; @@ -184,6 +185,14 @@ public class ActivityOptions { private static final String KEY_CALLER_DISPLAY_ID = "android.activity.callerDisplayId"; /** + * The task display area token the activity should be launched into. + * @see #setLaunchTaskDisplayArea(WindowContainerToken) + * @hide + */ + private static final String KEY_LAUNCH_TASK_DISPLAY_AREA_TOKEN = + "android.activity.launchTaskDisplayAreaToken"; + + /** * The windowing mode the activity should be launched into. * @hide */ @@ -334,6 +343,7 @@ public class ActivityOptions { private PendingIntent mUsageTimeReport; private int mLaunchDisplayId = INVALID_DISPLAY; private int mCallerDisplayId = INVALID_DISPLAY; + private WindowContainerToken mLaunchTaskDisplayArea; @WindowConfiguration.WindowingMode private int mLaunchWindowingMode = WINDOWING_MODE_UNDEFINED; @WindowConfiguration.ActivityType @@ -974,6 +984,7 @@ public class ActivityOptions { mLockTaskMode = opts.getBoolean(KEY_LOCK_TASK_MODE, false); mLaunchDisplayId = opts.getInt(KEY_LAUNCH_DISPLAY_ID, INVALID_DISPLAY); mCallerDisplayId = opts.getInt(KEY_CALLER_DISPLAY_ID, INVALID_DISPLAY); + mLaunchTaskDisplayArea = opts.getParcelable(KEY_LAUNCH_TASK_DISPLAY_AREA_TOKEN); mLaunchWindowingMode = opts.getInt(KEY_LAUNCH_WINDOWING_MODE, WINDOWING_MODE_UNDEFINED); mLaunchActivityType = opts.getInt(KEY_LAUNCH_ACTIVITY_TYPE, ACTIVITY_TYPE_UNDEFINED); mLaunchTaskId = opts.getInt(KEY_LAUNCH_TASK_ID, -1); @@ -1245,6 +1256,18 @@ public class ActivityOptions { } /** @hide */ + public WindowContainerToken getLaunchTaskDisplayArea() { + return mLaunchTaskDisplayArea; + } + + /** @hide */ + public ActivityOptions setLaunchTaskDisplayArea( + WindowContainerToken windowContainerToken) { + mLaunchTaskDisplayArea = windowContainerToken; + return this; + } + + /** @hide */ public int getLaunchWindowingMode() { return mLaunchWindowingMode; } @@ -1568,6 +1591,9 @@ public class ActivityOptions { if (mCallerDisplayId != INVALID_DISPLAY) { b.putInt(KEY_CALLER_DISPLAY_ID, mCallerDisplayId); } + if (mLaunchTaskDisplayArea != null) { + b.putParcelable(KEY_LAUNCH_TASK_DISPLAY_AREA_TOKEN, mLaunchTaskDisplayArea); + } if (mLaunchWindowingMode != WINDOWING_MODE_UNDEFINED) { b.putInt(KEY_LAUNCH_WINDOWING_MODE, mLaunchWindowingMode); } |
