diff options
| author | 2015-10-27 14:21:58 -0700 | |
|---|---|---|
| committer | 2015-11-02 11:32:42 -0800 | |
| commit | 3797c22ea16e932329ebffdc7e7ce09f9ecd9545 (patch) | |
| tree | a5a4b09cb4c6dc8d8d4cc6e624ffb200856eab95 | |
| parent | c11f46f41662feebbbd2184aaef25c14add45e7d (diff) | |
Added StackId object for checking what features a stack supports
Helps make the code easier to follow since we are no longer checking
multiple stack ids at various decision points.
Bug: 25282299
Change-Id: Ifa6864a1ef56ce2eca4c94f87a4e0b993de987cd
24 files changed, 208 insertions, 191 deletions
diff --git a/cmds/am/src/com/android/commands/am/Am.java b/cmds/am/src/com/android/commands/am/Am.java index 12780a8742b9..7f33cb5df1a3 100644 --- a/cmds/am/src/com/android/commands/am/Am.java +++ b/cmds/am/src/com/android/commands/am/Am.java @@ -18,7 +18,7 @@ package com.android.commands.am; -import static android.app.ActivityManager.DOCKED_STACK_ID; +import static android.app.ActivityManager.StackId.DOCKED_STACK_ID; import static android.app.ActivityManager.RESIZE_MODE_SYSTEM; import static android.app.ActivityManager.RESIZE_MODE_USER; diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index 2f0849f39aa2..472d97fdb9ed 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -2728,8 +2728,8 @@ public class Activity extends ContextThemeWrapper /** * Called to move the window and its activity/task to a different stack container. * For example, a window can move between - * {@link android.app.ActivityManager#FULLSCREEN_WORKSPACE_STACK_ID} stack and - * {@link android.app.ActivityManager#FREEFORM_WORKSPACE_STACK_ID} stack. + * {@link android.app.ActivityManager.StackId#FULLSCREEN_WORKSPACE_STACK_ID} stack and + * {@link android.app.ActivityManager.StackId#FREEFORM_WORKSPACE_STACK_ID} stack. * * @param stackId stack Id to change to. * @hide diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java index fce1b2e7241a..30a43f578dea 100644 --- a/core/java/android/app/ActivityManager.java +++ b/core/java/android/app/ActivityManager.java @@ -73,7 +73,6 @@ import java.util.List; */ public class ActivityManager { private static String TAG = "ActivityManager"; - private static boolean localLOGV = false; private static int gMaxRecentTasks = -1; @@ -397,60 +396,112 @@ public class ActivityManager { */ public static final int COMPAT_MODE_TOGGLE = 2; - /** - * Invalid stack ID. - * @hide - */ - public static final int INVALID_STACK_ID = -1; + /** @hide */ + public static class StackId { + /** Invalid stack ID. */ + public static final int INVALID_STACK_ID = -1; - /** - * First static stack ID. - * @hide - */ - public static final int FIRST_STATIC_STACK_ID = 0; + /** First static stack ID. */ + public static final int FIRST_STATIC_STACK_ID = 0; - /** - * Home activity stack ID. - * @hide - */ - public static final int HOME_STACK_ID = FIRST_STATIC_STACK_ID; + /** Home activity stack ID. */ + public static final int HOME_STACK_ID = FIRST_STATIC_STACK_ID; - /** - * ID of stack where fullscreen activities are normally launched into. - * @hide - */ - public static final int FULLSCREEN_WORKSPACE_STACK_ID = 1; + /** ID of stack where fullscreen activities are normally launched into. */ + public static final int FULLSCREEN_WORKSPACE_STACK_ID = 1; - /** - * ID of stack where freeform/resized activities are normally launched into. - * @hide - */ - public static final int FREEFORM_WORKSPACE_STACK_ID = FULLSCREEN_WORKSPACE_STACK_ID + 1; + /** ID of stack where freeform/resized activities are normally launched into. */ + public static final int FREEFORM_WORKSPACE_STACK_ID = FULLSCREEN_WORKSPACE_STACK_ID + 1; - /** - * ID of stack that occupies a dedicated region of the screen. - * @hide - */ - public static final int DOCKED_STACK_ID = FREEFORM_WORKSPACE_STACK_ID + 1; + /** ID of stack that occupies a dedicated region of the screen. */ + public static final int DOCKED_STACK_ID = FREEFORM_WORKSPACE_STACK_ID + 1; - /** - * ID of stack that always on top (always visible) when it exist. - * Mainly used for this in Picture-in-Picture mode. - * @hide - */ - public static final int PINNED_STACK_ID = DOCKED_STACK_ID + 1; + /** ID of stack that always on top (always visible) when it exist. */ + public static final int PINNED_STACK_ID = DOCKED_STACK_ID + 1; - /** - * Last static stack stack ID. - * @hide - */ - public static final int LAST_STATIC_STACK_ID = PINNED_STACK_ID; + /** Last static stack stack ID. */ + public static final int LAST_STATIC_STACK_ID = PINNED_STACK_ID; - /** - * Start of ID range used by stacks that are created dynamically. - * @hide - */ - public static final int FIRST_DYNAMIC_STACK_ID = LAST_STATIC_STACK_ID + 1; + /** Start of ID range used by stacks that are created dynamically. */ + public static final int FIRST_DYNAMIC_STACK_ID = LAST_STATIC_STACK_ID + 1; + + public static boolean isStaticStack(int stackId) { + return stackId >= FIRST_STATIC_STACK_ID && stackId <= LAST_STATIC_STACK_ID; + } + + /** + * Returns true if the activities contained in the input stack display a shadow around + * their border. + */ + public static boolean hasWindowShadow(int stackId) { + return stackId == FREEFORM_WORKSPACE_STACK_ID || stackId == PINNED_STACK_ID; + } + + /** + * Returns true if the activities contained in the input stack display a decor view. + */ + public static boolean hasWindowDecor(int stackId) { + return stackId == FREEFORM_WORKSPACE_STACK_ID; + } + + /** + * Returns true if the tasks contained in the stack can be resized independently of the + * stack. + */ + public static boolean isTaskResizeAllowed(int stackId) { + return stackId == FREEFORM_WORKSPACE_STACK_ID; + } + + /** + * Returns true if the task bounds should persist across power cycles. + */ + public static boolean persistTaskBounds(int stackId) { + return isStaticStack(stackId) && + stackId != DOCKED_STACK_ID && stackId != PINNED_STACK_ID; + } + + /** + * Returns true if dynamic stacks are allowed to be visible behind the input stack. + */ + public static boolean isDynamicStacksVisibleBehindAllowed(int stackId) { + return stackId == PINNED_STACK_ID; + } + + /** + * Returns true if we try to maintain focus in the current stack when the top activity + * finishes. + */ + public static boolean keepFocusInStackIfPossible(int stackId) { + return stackId == FREEFORM_WORKSPACE_STACK_ID + || stackId == DOCKED_STACK_ID || stackId == PINNED_STACK_ID; + } + + /** + * Returns true if Stack size is affected by the docked stack changing size. + */ + public static boolean isResizeableByDockedStack(int stackId) { + return isStaticStack(stackId) && + stackId != DOCKED_STACK_ID && stackId != PINNED_STACK_ID; + } + + /** + * Returns true if the size of tasks in the input stack are affected by the docked stack + * changing size. + */ + public static boolean isTaskResizeableByDockedStack(int stackId) { + return isStaticStack(stackId) && stackId != FREEFORM_WORKSPACE_STACK_ID + && stackId != DOCKED_STACK_ID && stackId != PINNED_STACK_ID; + } + + /** + * Returns true if the windows of tasks being moved to this stack should be preserved so + * there isn't a display gap. + */ + public static boolean preserveWindowOnTaskMove(int stackId) { + return stackId == FULLSCREEN_WORKSPACE_STACK_ID + || stackId == DOCKED_STACK_ID || stackId == PINNED_STACK_ID; + } + } /** * Input parameter to {@link android.app.IActivityManager#moveTaskToDockedStack} which diff --git a/core/java/android/view/Window.java b/core/java/android/view/Window.java index d9ec866ffbab..61497a769167 100644 --- a/core/java/android/view/Window.java +++ b/core/java/android/view/Window.java @@ -552,8 +552,8 @@ public abstract class Window { /** * Called to move the window and its activity/task to a different stack container. * For example, a window can move between - * {@link android.app.ActivityManager#FULLSCREEN_WORKSPACE_STACK_ID} stack and - * {@link android.app.ActivityManager#FREEFORM_WORKSPACE_STACK_ID} stack. + * {@link android.app.ActivityManager.StackId#FULLSCREEN_WORKSPACE_STACK_ID} stack and + * {@link android.app.ActivityManager.StackId#FREEFORM_WORKSPACE_STACK_ID} stack. * * @param stackId stack Id to change to. */ diff --git a/core/java/com/android/internal/policy/PhoneWindow.java b/core/java/com/android/internal/policy/PhoneWindow.java index 7fab31f6f9ea..ad230618cc60 100644 --- a/core/java/com/android/internal/policy/PhoneWindow.java +++ b/core/java/com/android/internal/policy/PhoneWindow.java @@ -16,11 +16,8 @@ package com.android.internal.policy; -import static android.app.ActivityManager.FIRST_DYNAMIC_STACK_ID; -import static android.app.ActivityManager.FREEFORM_WORKSPACE_STACK_ID; -import static android.app.ActivityManager.FULLSCREEN_WORKSPACE_STACK_ID; -import static android.app.ActivityManager.INVALID_STACK_ID; -import static android.app.ActivityManager.PINNED_STACK_ID; +import static android.app.ActivityManager.StackId.FULLSCREEN_WORKSPACE_STACK_ID; +import static android.app.ActivityManager.StackId.INVALID_STACK_ID; import static android.view.View.MeasureSpec.AT_MOST; import static android.view.View.MeasureSpec.EXACTLY; import static android.view.View.MeasureSpec.getMode; @@ -30,6 +27,7 @@ import static android.view.WindowManager.LayoutParams.*; import android.animation.Animator; import android.animation.ObjectAnimator; +import android.app.ActivityManager.StackId; import android.app.ActivityManagerNative; import android.app.SearchManager; import android.os.Build; @@ -712,9 +710,9 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { if (mWorkspaceId != workspaceId) { mWorkspaceId = workspaceId; // We might have to change the kind of surface before we do anything else. - mNonClientDecorView.phoneWindowUpdated(hasNonClientDecor(mWorkspaceId), - nonClientDecorHasShadow(mWorkspaceId)); - mDecor.enableNonClientDecor(hasNonClientDecor(workspaceId)); + mNonClientDecorView.phoneWindowUpdated(StackId.hasWindowDecor(mWorkspaceId), + StackId.hasWindowShadow(mWorkspaceId)); + mDecor.enableNonClientDecor(StackId.hasWindowDecor(workspaceId)); } } } @@ -3710,7 +3708,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { * @return Returns true when the window has a shadow created by the non client decor. **/ private boolean windowHasShadow() { - return windowHasNonClientDecor() && nonClientDecorHasShadow(mWindow.mWorkspaceId); + return windowHasNonClientDecor() && StackId.hasWindowShadow(mWindow.mWorkspaceId); } void setWindow(PhoneWindow phoneWindow) { @@ -4209,7 +4207,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { mWorkspaceId = getWorkspaceId(); // Only a non floating application window on one of the allowed workspaces can get a non // client decor. - if (!isFloating() && isApplication && mWorkspaceId < FIRST_DYNAMIC_STACK_ID) { + if (!isFloating() && isApplication && StackId.isStaticStack(mWorkspaceId)) { // Dependent on the brightness of the used title we either use the // dark or the light button frame. if (nonClientDecorView == null) { @@ -4225,12 +4223,13 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { R.layout.non_client_decor_light, null); } } - nonClientDecorView.setPhoneWindow(this, hasNonClientDecor(mWorkspaceId), - nonClientDecorHasShadow(mWorkspaceId), getResizingBackgroundDrawable(), + nonClientDecorView.setPhoneWindow(this, StackId.hasWindowDecor(mWorkspaceId), + StackId.hasWindowShadow(mWorkspaceId), getResizingBackgroundDrawable(), mDecor.getContext().getDrawable(R.drawable.non_client_decor_title_focused)); } // Tell the decor if it has a visible non client decor. - mDecor.enableNonClientDecor(nonClientDecorView != null && hasNonClientDecor(mWorkspaceId)); + mDecor.enableNonClientDecor( + nonClientDecorView != null&& StackId.hasWindowDecor(mWorkspaceId)); return nonClientDecorView; } @@ -5403,24 +5402,6 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { return workspaceId; } - /** - * Determines if the window should show a non client decor for the workspace it is in. - * @param workspaceId The Id of the workspace which contains this window. - * @Return Returns true if the window should show a non client decor. - **/ - private static boolean hasNonClientDecor(int workspaceId) { - return workspaceId == FREEFORM_WORKSPACE_STACK_ID; - } - - /** - * Determines if the window should show a shadow or not, dependent on the workspace. - * @param workspaceId The Id of the workspace which contains this window. - * @Return Returns true if the window should show a shadow. - **/ - private static boolean nonClientDecorHasShadow(int workspaceId) { - return workspaceId == FREEFORM_WORKSPACE_STACK_ID || workspaceId == PINNED_STACK_ID; - } - @Override public void setTheme(int resid) { mTheme = resid; diff --git a/core/java/com/android/internal/widget/NonClientDecorView.java b/core/java/com/android/internal/widget/NonClientDecorView.java index 5d502c9dcca0..59783ed88565 100644 --- a/core/java/com/android/internal/widget/NonClientDecorView.java +++ b/core/java/com/android/internal/widget/NonClientDecorView.java @@ -16,8 +16,9 @@ package com.android.internal.widget; +import static android.app.ActivityManager.StackId.FULLSCREEN_WORKSPACE_STACK_ID; + import android.content.Context; -import android.graphics.Color; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.os.Looper; @@ -332,8 +333,7 @@ public class NonClientDecorView extends LinearLayout Window.WindowControllerCallback callback = mOwner.getWindowControllerCallback(); if (callback != null) { try { - callback.changeWindowStack( - android.app.ActivityManager.FULLSCREEN_WORKSPACE_STACK_ID); + callback.changeWindowStack(FULLSCREEN_WORKSPACE_STACK_ID); } catch (RemoteException ex) { Log.e(TAG, "Cannot change task workspace."); } diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java index d02e2affaaa7..d5bbad2f5335 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java +++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java @@ -16,7 +16,7 @@ package com.android.systemui.recents; -import static android.app.ActivityManager.FREEFORM_WORKSPACE_STACK_ID; +import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID; import android.app.ActivityManager; import android.app.ActivityOptions; diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsResizeTaskDialog.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsResizeTaskDialog.java index 28299d3217fb..d4158451b54b 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/RecentsResizeTaskDialog.java +++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsResizeTaskDialog.java @@ -33,8 +33,8 @@ import com.android.systemui.recents.misc.SystemServicesProxy; import com.android.systemui.recents.model.Task; import com.android.systemui.recents.views.RecentsView; -import static android.app.ActivityManager.DOCKED_STACK_ID; -import static android.app.ActivityManager.FREEFORM_WORKSPACE_STACK_ID; +import static android.app.ActivityManager.StackId.DOCKED_STACK_ID; +import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID; /** * A helper for the dialogs that show when task debugging is on. diff --git a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java index 141562c86b90..d8d9f076e174 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java +++ b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java @@ -71,8 +71,10 @@ import java.util.Iterator; import java.util.List; import java.util.Random; -import static android.app.ActivityManager.DOCKED_STACK_ID; -import static android.app.ActivityManager.INVALID_STACK_ID; +import static android.app.ActivityManager.StackId.DOCKED_STACK_ID; +import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID; +import static android.app.ActivityManager.StackId.HOME_STACK_ID; +import static android.app.ActivityManager.StackId.INVALID_STACK_ID; /** * Acts as a shim around the real system services that we need to access data from, and provides @@ -310,14 +312,14 @@ public class SystemServicesProxy { * Returns whether the given stack id is the home stack id. */ public static boolean isHomeStack(int stackId) { - return stackId == ActivityManager.HOME_STACK_ID; + return stackId == HOME_STACK_ID; } /** * Returns whether the given stack id is the freeform workspace stack id. */ public static boolean isFreeformStack(int stackId) { - return stackId == ActivityManager.FREEFORM_WORKSPACE_STACK_ID; + return stackId == FREEFORM_WORKSPACE_STACK_ID; } /** @@ -714,7 +716,7 @@ public class SystemServicesProxy { try { // Use the home stack bounds - ActivityManager.StackInfo stackInfo = mIam.getStackInfo(ActivityManager.HOME_STACK_ID); + ActivityManager.StackInfo stackInfo = mIam.getStackInfo(HOME_STACK_ID); if (stackInfo != null) { windowRect.set(stackInfo.bounds); } diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java index a8a8259e79e5..32f7e20df94a 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java @@ -60,7 +60,9 @@ import com.android.systemui.recents.model.TaskStack; import java.util.ArrayList; import java.util.List; -import static android.app.ActivityManager.INVALID_STACK_ID; +import static android.app.ActivityManager.StackId.FULLSCREEN_WORKSPACE_STACK_ID; +import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID; +import static android.app.ActivityManager.StackId.INVALID_STACK_ID; /** * This view is the the top level layout that contains TaskStacks (which are laid out according @@ -488,14 +490,14 @@ public class RecentsView extends FrameLayout implements TaskStackView.TaskStackV int destinationStack) { final int targetStackId = destinationStack != INVALID_STACK_ID ? destinationStack : clickedTask.getTask().key.stackId; - if (targetStackId != ActivityManager.FREEFORM_WORKSPACE_STACK_ID - && targetStackId != ActivityManager.FULLSCREEN_WORKSPACE_STACK_ID) { + if (targetStackId != FREEFORM_WORKSPACE_STACK_ID + && targetStackId != FULLSCREEN_WORKSPACE_STACK_ID) { return null; } // If this is a full screen stack, the transition will be towards the single, full screen // task. We only need the transition spec for this task. List<AppTransitionAnimationSpec> specs = new ArrayList<>(); - if (targetStackId == ActivityManager.FULLSCREEN_WORKSPACE_STACK_ID) { + if (targetStackId == FULLSCREEN_WORKSPACE_STACK_ID) { specs.add(createThumbnailHeaderAnimationSpec( stackView, offsetX, offsetY, stackScroll, clickedTask, clickedTask.getTask().key.id, ADD_HEADER_BITMAP)); diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java index dfa36d81affb..f9cd3133eee5 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java @@ -58,7 +58,7 @@ import java.util.HashSet; import java.util.Iterator; import java.util.List; -import static android.app.ActivityManager.INVALID_STACK_ID; +import static android.app.ActivityManager.StackId.INVALID_STACK_ID; /* The visual representation of a task stack view */ diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarApps.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarApps.java index 4ac2c3185b6d..a51f62ad0b69 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarApps.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarApps.java @@ -16,7 +16,7 @@ package com.android.systemui.statusbar.phone; -import static android.app.ActivityManager.INVALID_STACK_ID; +import static android.app.ActivityManager.StackId.INVALID_STACK_ID; import android.animation.LayoutTransition; import android.annotation.Nullable; diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index d5ee5e846277..18337658f801 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -19,12 +19,11 @@ package com.android.server.am; import static android.Manifest.permission.INTERACT_ACROSS_USERS; import static android.Manifest.permission.INTERACT_ACROSS_USERS_FULL; import static android.Manifest.permission.START_TASKS_FROM_RECENTS; -import static android.app.ActivityManager.DOCKED_STACK_ID; -import static android.app.ActivityManager.FREEFORM_WORKSPACE_STACK_ID; -import static android.app.ActivityManager.FULLSCREEN_WORKSPACE_STACK_ID; -import static android.app.ActivityManager.HOME_STACK_ID; -import static android.app.ActivityManager.INVALID_STACK_ID; -import static android.app.ActivityManager.PINNED_STACK_ID; +import static android.app.ActivityManager.StackId.DOCKED_STACK_ID; +import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID; +import static android.app.ActivityManager.StackId.FULLSCREEN_WORKSPACE_STACK_ID; +import static android.app.ActivityManager.StackId.HOME_STACK_ID; +import static android.app.ActivityManager.StackId.INVALID_STACK_ID; import static android.app.ActivityManager.RESIZE_MODE_PRESERVE_WINDOW; import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static com.android.internal.util.XmlUtils.readBooleanAttribute; @@ -47,6 +46,7 @@ import static org.xmlpull.v1.XmlPullParser.END_DOCUMENT; import static org.xmlpull.v1.XmlPullParser.START_TAG; import android.Manifest; +import android.app.ActivityManager.StackId; import android.app.AppOpsManager; import android.app.ApplicationThreadNative; import android.app.BroadcastOptions; @@ -8651,12 +8651,9 @@ public final class ActivityManagerService extends ActivityManagerNative // - a non-null bounds on a non-freeform (fullscreen OR docked) task moves // that task to freeform // - otherwise the task is not moved - // Note it's not allowed to resize a home, docked, or pinned stack task. int stackId = task.stack.mStackId; - if (stackId == HOME_STACK_ID || stackId == DOCKED_STACK_ID - || stackId == PINNED_STACK_ID) { - throw new IllegalArgumentException("trying to resizeTask on a " - + "home or docked task"); + if (!StackId.isTaskResizeAllowed(stackId)) { + throw new IllegalArgumentException("resizeTask not allowed on task=" + task); } if (bounds == null && stackId == FREEFORM_WORKSPACE_STACK_ID) { stackId = FULLSCREEN_WORKSPACE_STACK_ID; diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java index 2104830c6666..0f5927d38716 100644 --- a/services/core/java/com/android/server/am/ActivityStack.java +++ b/services/core/java/com/android/server/am/ActivityStack.java @@ -16,14 +16,11 @@ package com.android.server.am; -import static android.app.ActivityManager.DOCKED_STACK_ID; -import static android.app.ActivityManager.FIRST_STATIC_STACK_ID; -import static android.app.ActivityManager.FREEFORM_WORKSPACE_STACK_ID; -import static android.app.ActivityManager.FULLSCREEN_WORKSPACE_STACK_ID; -import static android.app.ActivityManager.HOME_STACK_ID; -import static android.app.ActivityManager.INVALID_STACK_ID; -import static android.app.ActivityManager.LAST_STATIC_STACK_ID; -import static android.app.ActivityManager.PINNED_STACK_ID; +import static android.app.ActivityManager.StackId.DOCKED_STACK_ID; +import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID; +import static android.app.ActivityManager.StackId.FULLSCREEN_WORKSPACE_STACK_ID; +import static android.app.ActivityManager.StackId.HOME_STACK_ID; +import static android.app.ActivityManager.StackId.PINNED_STACK_ID; import static android.content.pm.ActivityInfo.FLAG_SHOW_FOR_ALL_USERS; import static com.android.server.am.ActivityManagerDebugConfig.*; @@ -49,6 +46,7 @@ import com.android.server.wm.WindowManagerService; import android.app.Activity; import android.app.ActivityManager; +import android.app.ActivityManager.StackId; import android.app.ActivityOptions; import android.app.AppGlobals; import android.app.IActivityController; @@ -255,9 +253,6 @@ final class ActivityStack { private final LaunchingTaskPositioner mTaskPositioner; - // If the bounds of task contained in this stack should be persisted across power cycles. - final boolean mPersistTaskBounds; - static final int PAUSE_TIMEOUT_MSG = ActivityManagerService.FIRST_ACTIVITY_STACK_MSG + 1; static final int DESTROY_TIMEOUT_MSG = ActivityManagerService.FIRST_ACTIVITY_STACK_MSG + 2; static final int LAUNCH_TICK_MSG = ActivityManagerService.FIRST_ACTIVITY_STACK_MSG + 3; @@ -371,7 +366,6 @@ final class ActivityStack { mRecentTasks = recentTasks; mTaskPositioner = mStackId == FREEFORM_WORKSPACE_STACK_ID ? new LaunchingTaskPositioner() : null; - mPersistTaskBounds = mStackId != DOCKED_STACK_ID && mStackId != PINNED_STACK_ID; } void attachDisplay(ActivityStackSupervisor.ActivityDisplay activityDisplay, boolean onTop) { @@ -1365,7 +1359,7 @@ final class ActivityStack { } } - if (mStackId >= FIRST_STATIC_STACK_ID && mStackId <= LAST_STATIC_STACK_ID) { + if (StackId.isStaticStack(mStackId)) { // Visibility of any static stack should have been determined by the conditions above. return false; } @@ -1377,9 +1371,7 @@ final class ActivityStack { continue; } - if (stack.mStackId == FREEFORM_WORKSPACE_STACK_ID - || stack.mStackId == HOME_STACK_ID - || stack.mStackId == FULLSCREEN_WORKSPACE_STACK_ID) { + if (!StackId.isDynamicStacksVisibleBehindAllowed(stack.mStackId)) { // These stacks can't have any dynamic stacks visible behind them. return false; } @@ -2797,8 +2789,7 @@ final class ActivityStack { ActivityRecord next = topRunningActivityLocked(); final String myReason = reason + " adjustFocus"; if (next != r) { - if (next != null && (mStackId == FREEFORM_WORKSPACE_STACK_ID - || mStackId == DOCKED_STACK_ID || mStackId == PINNED_STACK_ID)) { + if (next != null && StackId.keepFocusInStackIfPossible(mStackId)) { // For freeform, docked, and pinned stacks we always keep the focus within the // stack as long as there is a running activity in the stack that we can adjust // focus to. diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java index 1cd71a1cb61a..7e42dce74fea 100644 --- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java @@ -18,6 +18,15 @@ package com.android.server.am; import static android.Manifest.permission.START_ANY_ACTIVITY; import static android.app.ActivityManager.*; +import static android.app.ActivityManager.StackId.DOCKED_STACK_ID; +import static android.app.ActivityManager.StackId.FIRST_DYNAMIC_STACK_ID; +import static android.app.ActivityManager.StackId.FIRST_STATIC_STACK_ID; +import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID; +import static android.app.ActivityManager.StackId.FULLSCREEN_WORKSPACE_STACK_ID; +import static android.app.ActivityManager.StackId.HOME_STACK_ID; +import static android.app.ActivityManager.StackId.INVALID_STACK_ID; +import static android.app.ActivityManager.StackId.LAST_STATIC_STACK_ID; +import static android.app.ActivityManager.StackId.PINNED_STACK_ID; import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK; import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP; import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; @@ -40,6 +49,7 @@ import static com.android.server.am.TaskRecord.LOCK_TASK_AUTH_WHITELISTED; import android.Manifest; import android.app.Activity; import android.app.ActivityManager; +import android.app.ActivityManager.StackId; import android.app.ActivityManager.StackInfo; import android.app.ActivityOptions; import android.app.AppGlobals; @@ -554,8 +564,8 @@ public final class ActivityStackSupervisor implements DisplayListener { * @param id Id of the task we would like returned. * @param restoreFromRecents If the id was not in the active list, but was found in recents, * restore the task from recents to the active list. - * @param stackId The stack to restore the task to (default launch stack will be used - * if stackId is {@link android.app.ActivityManager#INVALID_STACK_ID}). + * @param stackId The stack to restore the task to (default launch stack will be used if + * stackId is {@link android.app.ActivityManager.StackId#INVALID_STACK_ID}). */ TaskRecord anyTaskForIdLocked(int id, boolean restoreFromRecents, int stackId) { int numDisplays = mActivityDisplays.size(); @@ -1820,8 +1830,7 @@ public final class ActivityStackSupervisor implements DisplayListener { final ArrayList<ActivityStack> homeDisplayStacks = mHomeStack.mStacks; for (int stackNdx = homeDisplayStacks.size() - 1; stackNdx >= 0; --stackNdx) { stack = homeDisplayStacks.get(stackNdx); - final boolean isDynamicStack = stack.mStackId >= FIRST_DYNAMIC_STACK_ID; - if (isDynamicStack) { + if (!StackId.isStaticStack(stack.mStackId)) { if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG_FOCUS, "computeStackFocus: Setting focused stack=" + stack); return stack; @@ -2899,15 +2908,14 @@ public final class ActivityStackSupervisor implements DisplayListener { if (activityContainer != null) { return activityContainer.mStack; } - if (!createStaticStackIfNeeded - || (stackId < FIRST_STATIC_STACK_ID || stackId > LAST_STATIC_STACK_ID)) { + if (!createStaticStackIfNeeded || !StackId.isStaticStack(stackId)) { return null; } return createStackOnDisplay(stackId, Display.DEFAULT_DISPLAY, createOnTop); } ArrayList<ActivityStack> getStacks() { - ArrayList<ActivityStack> allStacks = new ArrayList<ActivityStack>(); + ArrayList<ActivityStack> allStacks = new ArrayList<>(); for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) { allStacks.addAll(mActivityDisplays.valueAt(displayNdx).mStacks); } @@ -3025,7 +3033,7 @@ public final class ActivityStackSupervisor implements DisplayListener { // In this case we make all other static stacks fullscreen and move all // docked stack tasks to the fullscreen stack. for (int i = FIRST_STATIC_STACK_ID; i <= LAST_STATIC_STACK_ID; i++) { - if (i != DOCKED_STACK_ID && getStack(i) != null) { + if (StackId.isResizeableByDockedStack(i) && getStack(i) != null) { resizeStackLocked(i, null, preserveWindows, true); } } @@ -3046,7 +3054,7 @@ public final class ActivityStackSupervisor implements DisplayListener { mWindowManager.getStackDockedModeBounds(HOME_STACK_ID, tempRect); for (int i = FIRST_STATIC_STACK_ID; i <= LAST_STATIC_STACK_ID; i++) { - if (i != DOCKED_STACK_ID) { + if (StackId.isResizeableByDockedStack(i)) { ActivityStack otherStack = getStack(i); if (otherStack != null) { resizeStackLocked(i, tempRect, PRESERVE_WINDOWS, true); @@ -3190,7 +3198,7 @@ public final class ActivityStackSupervisor implements DisplayListener { * Restores a recent task to a stack * @param task The recent task to be restored. * @param stackId The stack to restore the task to (default launch stack will be used - * if stackId is {@link android.app.ActivityManager#INVALID_STACK_ID}). + * if stackId is {@link android.app.ActivityManager.StackId#INVALID_STACK_ID}). * @return true if the task has been restored successfully. */ private boolean restoreRecentTaskLocked(TaskRecord task, int stackId) { @@ -3275,8 +3283,7 @@ public final class ActivityStackSupervisor implements DisplayListener { Slog.w(TAG, "moveTaskToStack: no task for id=" + taskId); return; } - if (stackId == DOCKED_STACK_ID || stackId == PINNED_STACK_ID - || stackId == FULLSCREEN_WORKSPACE_STACK_ID) { + if (StackId.preserveWindowOnTaskMove(stackId)) { // We are about to relaunch the activity because its configuration changed due to // being maximized, i.e. size change. The activity will first remove the old window // and then add a new one. This call will tell window manager about this, so it can diff --git a/services/core/java/com/android/server/am/TaskRecord.java b/services/core/java/com/android/server/am/TaskRecord.java index 120b40c73c13..5fd213f96c66 100644 --- a/services/core/java/com/android/server/am/TaskRecord.java +++ b/services/core/java/com/android/server/am/TaskRecord.java @@ -16,11 +16,9 @@ package com.android.server.am; -import static android.app.ActivityManager.DOCKED_STACK_ID; -import static android.app.ActivityManager.FREEFORM_WORKSPACE_STACK_ID; -import static android.app.ActivityManager.FULLSCREEN_WORKSPACE_STACK_ID; -import static android.app.ActivityManager.HOME_STACK_ID; -import static android.app.ActivityManager.PINNED_STACK_ID; +import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID; +import static android.app.ActivityManager.StackId.FULLSCREEN_WORKSPACE_STACK_ID; +import static android.app.ActivityManager.StackId.HOME_STACK_ID; import static android.content.Intent.FLAG_ACTIVITY_NEW_DOCUMENT; import static android.content.Intent.FLAG_ACTIVITY_RETAIN_IN_RECENTS; import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_ALWAYS; @@ -35,6 +33,7 @@ import static com.android.server.am.ActivityRecord.RECENTS_ACTIVITY_TYPE; import android.app.Activity; import android.app.ActivityManager; +import android.app.ActivityManager.StackId; import android.app.ActivityManager.TaskThumbnail; import android.app.ActivityManager.TaskDescription; import android.app.ActivityOptions; @@ -1193,14 +1192,14 @@ final class TaskRecord { mFullscreen = bounds == null; if (mFullscreen) { - if (mBounds != null && stack.mPersistTaskBounds) { + if (mBounds != null && StackId.persistTaskBounds(stack.mStackId)) { mLastNonFullscreenBounds = mBounds; } mBounds = null; mOverrideConfig = Configuration.EMPTY; } else { mBounds = new Rect(bounds); - if (stack == null || stack.mPersistTaskBounds) { + if (stack == null || StackId.persistTaskBounds(stack.mStackId)) { mLastNonFullscreenBounds = mBounds; } @@ -1244,7 +1243,7 @@ final class TaskRecord { || stackId == HOME_STACK_ID || stackId == FULLSCREEN_WORKSPACE_STACK_ID) { return (mResizeable && stack != null) ? stack.mBounds : null; - } else if (!stack.mPersistTaskBounds) { + } else if (!StackId.persistTaskBounds(stackId)) { return stack.mBounds; } return mLastNonFullscreenBounds; diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index b38b9ceb0712..209751ee4bcd 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -16,8 +16,8 @@ package com.android.server.policy; -import static android.app.ActivityManager.DOCKED_STACK_ID; -import static android.app.ActivityManager.FREEFORM_WORKSPACE_STACK_ID; +import static android.app.ActivityManager.StackId.DOCKED_STACK_ID; +import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID; import static android.view.WindowManager.LayoutParams.*; import static android.view.WindowManagerPolicy.WindowManagerFuncs.LID_ABSENT; import static android.view.WindowManagerPolicy.WindowManagerFuncs.LID_OPEN; diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index fab8ee55b22c..d6f807eb0ab8 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -16,14 +16,15 @@ package com.android.server.wm; -import static android.app.ActivityManager.DOCKED_STACK_ID; -import static android.app.ActivityManager.HOME_STACK_ID; -import static android.app.ActivityManager.PINNED_STACK_ID; +import static android.app.ActivityManager.StackId.DOCKED_STACK_ID; +import static android.app.ActivityManager.StackId.HOME_STACK_ID; +import static android.app.ActivityManager.StackId.PINNED_STACK_ID; import static com.android.server.wm.WindowManagerService.DEBUG_VISIBILITY; import static com.android.server.wm.WindowManagerService.TAG; import static com.android.server.wm.WindowState.RESIZE_HANDLE_WIDTH_IN_DP; import static com.android.server.wm.WindowState.BOUNDS_FOR_TOUCH; +import android.app.ActivityManager.StackId; import android.graphics.Rect; import android.graphics.Region; import android.util.DisplayMetrics; @@ -311,7 +312,7 @@ class DisplayContent { final int delta = mService.dipToPixel(RESIZE_HANDLE_WIDTH_IN_DP, mDisplayMetrics); for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) { TaskStack stack = mStacks.get(stackNdx); - if (!stack.allowTaskResize()) { + if (!StackId.isTaskResizeAllowed(stack.mStackId)) { break; } final ArrayList<Task> tasks = stack.getTasks(); diff --git a/services/core/java/com/android/server/wm/DockedStackDividerController.java b/services/core/java/com/android/server/wm/DockedStackDividerController.java index 04cba81726ec..eafc3c6beccf 100644 --- a/services/core/java/com/android/server/wm/DockedStackDividerController.java +++ b/services/core/java/com/android/server/wm/DockedStackDividerController.java @@ -16,7 +16,7 @@ package com.android.server.wm; -import static android.app.ActivityManager.DOCKED_STACK_ID; +import static android.app.ActivityManager.StackId.DOCKED_STACK_ID; import static android.content.res.Configuration.ORIENTATION_LANDSCAPE; import static android.view.PointerIcon.STYLE_HORIZONTAL_DOUBLE_ARROW; import static android.view.PointerIcon.STYLE_VERTICAL_DOUBLE_ARROW; diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index ad4419604896..0a313c3ac549 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -16,22 +16,21 @@ package com.android.server.wm; -import static android.app.ActivityManager.DOCKED_STACK_ID; -import static android.app.ActivityManager.FREEFORM_WORKSPACE_STACK_ID; -import static android.app.ActivityManager.HOME_STACK_ID; -import static android.app.ActivityManager.PINNED_STACK_ID; +import static android.app.ActivityManager.StackId.DOCKED_STACK_ID; +import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID; +import static android.app.ActivityManager.StackId.HOME_STACK_ID; +import static android.app.ActivityManager.StackId.PINNED_STACK_ID; import static android.app.ActivityManager.RESIZE_MODE_SYSTEM_SCREEN_ROTATION; import static com.android.server.wm.WindowManagerService.TAG; import static com.android.server.wm.WindowManagerService.DEBUG_RESIZE; import static com.android.server.wm.WindowManagerService.DEBUG_STACK; import static com.android.server.wm.WindowManagerService.H.RESIZE_TASK; - +import android.app.ActivityManager.StackId; import android.content.res.Configuration; import android.graphics.Rect; import android.util.EventLog; import android.util.Slog; -import android.util.SparseArray; import android.view.DisplayInfo; import android.view.Surface; @@ -245,7 +244,7 @@ class Task implements DimLayer.DimLayerUser { private boolean useCurrentBounds() { final DisplayContent displayContent = mStack.getDisplayContent(); if (mFullscreen - || mStack.allowTaskResize() + || !StackId.isTaskResizeableByDockedStack(mStack.mStackId) || displayContent == null || displayContent.getDockedStackLocked() != null) { return true; diff --git a/services/core/java/com/android/server/wm/TaskPositioner.java b/services/core/java/com/android/server/wm/TaskPositioner.java index 227b3f01fac2..aae3bd24439f 100644 --- a/services/core/java/com/android/server/wm/TaskPositioner.java +++ b/services/core/java/com/android/server/wm/TaskPositioner.java @@ -18,7 +18,7 @@ package com.android.server.wm; import static android.app.ActivityManager.DOCKED_STACK_CREATE_MODE_BOTTOM_OR_RIGHT; import static android.app.ActivityManager.DOCKED_STACK_CREATE_MODE_TOP_OR_LEFT; -import static android.app.ActivityManager.FREEFORM_WORKSPACE_STACK_ID; +import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID; import static android.app.ActivityManager.RESIZE_MODE_USER; import static android.app.ActivityManager.RESIZE_MODE_USER_FORCED; import static android.content.res.Configuration.ORIENTATION_LANDSCAPE; diff --git a/services/core/java/com/android/server/wm/TaskStack.java b/services/core/java/com/android/server/wm/TaskStack.java index df664bd271bd..95e23917b7e3 100644 --- a/services/core/java/com/android/server/wm/TaskStack.java +++ b/services/core/java/com/android/server/wm/TaskStack.java @@ -17,17 +17,16 @@ package com.android.server.wm; import static android.app.ActivityManager.DOCKED_STACK_CREATE_MODE_TOP_OR_LEFT; -import static android.app.ActivityManager.DOCKED_STACK_ID; -import static android.app.ActivityManager.FIRST_STATIC_STACK_ID; -import static android.app.ActivityManager.FREEFORM_WORKSPACE_STACK_ID; -import static android.app.ActivityManager.FULLSCREEN_WORKSPACE_STACK_ID; -import static android.app.ActivityManager.LAST_STATIC_STACK_ID; -import static android.app.ActivityManager.PINNED_STACK_ID; +import static android.app.ActivityManager.StackId.DOCKED_STACK_ID; +import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID; +import static android.app.ActivityManager.StackId.FULLSCREEN_WORKSPACE_STACK_ID; +import static android.app.ActivityManager.StackId.PINNED_STACK_ID; import static com.android.server.wm.WindowManagerService.DEBUG_TASK_MOVEMENT; import static com.android.server.wm.WindowManagerService.H.RESIZE_STACK; import static com.android.server.wm.WindowManagerService.TAG; import android.annotation.IntDef; +import android.app.ActivityManager.StackId; import android.content.res.Configuration; import android.graphics.Rect; import android.os.Debug; @@ -122,12 +121,6 @@ public class TaskStack implements DimLayer.DimLayerUser { } } - boolean allowTaskResize() { - return mStackId == FREEFORM_WORKSPACE_STACK_ID - || mStackId == DOCKED_STACK_ID - || mStackId == PINNED_STACK_ID; - } - /** * Set the bounds of the stack and its containing tasks. * @param stackBounds New stack bounds. Passing in null sets the bounds to fullscreen. @@ -203,8 +196,7 @@ public class TaskStack implements DimLayer.DimLayerUser { /** Return true if the current bound can get outputted to the rest of the system as-is. */ private boolean useCurrentBounds() { if (mFullscreen - || mStackId == DOCKED_STACK_ID - || mStackId == PINNED_STACK_ID + || !StackId.isResizeableByDockedStack(mStackId) || mDisplayContent == null || mDisplayContent.getDockedStackLocked() != null) { return true; @@ -396,9 +388,9 @@ public class TaskStack implements DimLayer.DimLayerUser { Rect bounds = null; final TaskStack dockedStack = mService.mStackIdToStack.get(DOCKED_STACK_ID); - if (mStackId == DOCKED_STACK_ID || (dockedStack != null && mStackId != PINNED_STACK_ID - && mStackId >= FIRST_STATIC_STACK_ID && mStackId <= LAST_STATIC_STACK_ID)) { - // The existence of a docked stack affects the size of any static stack created since + if (mStackId == DOCKED_STACK_ID + || (dockedStack != null && StackId.isResizeableByDockedStack(mStackId))) { + // The existence of a docked stack affects the size of other static stack created since // the docked stack occupies a dedicated region on screen. bounds = new Rect(); displayContent.getLogicalDisplayRect(mTmpRect); @@ -424,10 +416,7 @@ public class TaskStack implements DimLayer.DimLayerUser { } void getStackDockedModeBoundsLocked(Rect outBounds) { - if (mStackId == DOCKED_STACK_ID - || mStackId == PINNED_STACK_ID - || mStackId > LAST_STATIC_STACK_ID - || mDisplayContent == null) { + if (!StackId.isResizeableByDockedStack(mStackId) || mDisplayContent == null) { outBounds.set(mBounds); return; } @@ -537,9 +526,7 @@ public class TaskStack implements DimLayer.DimLayerUser { for (int i = 0; i < count; i++) { final TaskStack otherStack = mService.mStackIdToStack.valueAt(i); final int otherStackId = otherStack.mStackId; - if (otherStackId != DOCKED_STACK_ID && mStackId != PINNED_STACK_ID - && otherStackId >= FIRST_STATIC_STACK_ID - && otherStackId <= LAST_STATIC_STACK_ID) { + if (StackId.isResizeableByDockedStack(otherStackId)) { mService.mH.sendMessage( mService.mH.obtainMessage(RESIZE_STACK, otherStackId, 1 /*allowResizeInDockedMode*/, bounds)); diff --git a/services/core/java/com/android/server/wm/WallpaperController.java b/services/core/java/com/android/server/wm/WallpaperController.java index 7f2f2cda8128..4a9d8cbdf006 100644 --- a/services/core/java/com/android/server/wm/WallpaperController.java +++ b/services/core/java/com/android/server/wm/WallpaperController.java @@ -16,7 +16,7 @@ package com.android.server.wm; -import static android.app.ActivityManager.FREEFORM_WORKSPACE_STACK_ID; +import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID; import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_KEYGUARD; import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING; diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 140fbaf01f58..fe4eb5117293 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -17,8 +17,8 @@ package com.android.server.wm; import static android.app.ActivityManager.DOCKED_STACK_CREATE_MODE_TOP_OR_LEFT; -import static android.app.ActivityManager.DOCKED_STACK_ID; -import static android.app.ActivityManager.FREEFORM_WORKSPACE_STACK_ID; +import static android.app.ActivityManager.StackId.DOCKED_STACK_ID; +import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_BEHIND; import static android.view.WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW; |