diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java index b9afbc95de0d4..48b15f4f8ffb5 100644 --- a/core/java/android/view/WindowManager.java +++ b/core/java/android/view/WindowManager.java @@ -343,23 +343,48 @@ public interface WindowManager extends ViewManager { /** @hide */ int TRANSIT_NONE = 0; - /** @hide */ + /** + * A window that didn't exist before has been created and made visible. + * @hide + */ int TRANSIT_OPEN = 1; - /** @hide */ + /** + * A window that was visible no-longer exists (was finished or destroyed). + * @hide + */ int TRANSIT_CLOSE = 2; - /** @hide */ + /** + * A window that already existed but was not visible is made visible. + * @hide + */ int TRANSIT_TO_FRONT = 3; - /** @hide */ + /** + * A window that was visible is made invisible but still exists. + * @hide + */ int TRANSIT_TO_BACK = 4; /** @hide */ int TRANSIT_RELAUNCH = 5; - /** @hide */ - int TRANSIT_CHANGE_WINDOWING_MODE = 6; - /** @hide */ + /** + * A window is visible before and after but changes in some way (eg. it resizes or changes + * windowing-mode). + * @hide + */ + int TRANSIT_CHANGE = 6; + /** + * The keyguard was visible and has been dismissed. + * @hide + */ int TRANSIT_KEYGUARD_GOING_AWAY = 7; - /** @hide */ + /** + * A window is appearing above a locked keyguard. + * @hide + */ int TRANSIT_KEYGUARD_OCCLUDE = 8; - /** @hide */ + /** + * A window is made invisible revealing a locked keyguard. + * @hide + */ int TRANSIT_KEYGUARD_UNOCCLUDE = 9; /** @@ -372,7 +397,7 @@ public interface WindowManager extends ViewManager { TRANSIT_TO_FRONT, TRANSIT_TO_BACK, TRANSIT_RELAUNCH, - TRANSIT_CHANGE_WINDOWING_MODE, + TRANSIT_CHANGE, TRANSIT_KEYGUARD_GOING_AWAY, TRANSIT_KEYGUARD_OCCLUDE, TRANSIT_KEYGUARD_UNOCCLUDE, diff --git a/core/java/android/window/TransitionInfo.java b/core/java/android/window/TransitionInfo.java index b4e7d6a9269fd..5136cf2d94348 100644 --- a/core/java/android/window/TransitionInfo.java +++ b/core/java/android/window/TransitionInfo.java @@ -16,6 +16,13 @@ package android.window; +import static android.view.WindowManager.TRANSIT_CHANGE; +import static android.view.WindowManager.TRANSIT_CLOSE; +import static android.view.WindowManager.TRANSIT_NONE; +import static android.view.WindowManager.TRANSIT_OPEN; +import static android.view.WindowManager.TRANSIT_TO_BACK; +import static android.view.WindowManager.TRANSIT_TO_FRONT; + import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; @@ -35,31 +42,17 @@ import java.util.List; */ public final class TransitionInfo implements Parcelable { - /** No transition mode. This is a placeholder, don't use this as an actual mode. */ - public static final int TRANSIT_NONE = 0; - - /** The container didn't exist before but will exist and be visible after. */ - public static final int TRANSIT_OPEN = 1; - - /** The container existed and was visible before but won't exist after. */ - public static final int TRANSIT_CLOSE = 2; - - /** The container existed before but was invisible and will be visible after. */ - public static final int TRANSIT_SHOW = 3; - - /** The container is going from visible to invisible but it will still exist after. */ - public static final int TRANSIT_HIDE = 4; - - /** The container exists and is visible before and after but it changes. */ - public static final int TRANSIT_CHANGE = 5; - - /** @hide */ + /** + * Modes are only a sub-set of all the transit-types since they are per-container + * @hide + */ @IntDef(prefix = { "TRANSIT_" }, value = { TRANSIT_NONE, TRANSIT_OPEN, TRANSIT_CLOSE, - TRANSIT_SHOW, - TRANSIT_HIDE, + // Note: to_front/to_back really mean show/hide respectively at the container level. + TRANSIT_TO_FRONT, + TRANSIT_TO_BACK, TRANSIT_CHANGE }) public @interface TransitionMode {} @@ -188,8 +181,8 @@ public final class TransitionInfo implements Parcelable { case TRANSIT_NONE: return "NONE"; case TRANSIT_OPEN: return "OPEN"; case TRANSIT_CLOSE: return "CLOSE"; - case TRANSIT_SHOW: return "SHOW"; - case TRANSIT_HIDE: return "HIDE"; + case TRANSIT_TO_FRONT: return "SHOW"; + case TRANSIT_TO_BACK: return "HIDE"; case TRANSIT_CHANGE: return "CHANGE"; default: return ""; } @@ -200,7 +193,7 @@ public final class TransitionInfo implements Parcelable { private final WindowContainerToken mContainer; private WindowContainerToken mParent; private final SurfaceControl mLeash; - private int mMode = TRANSIT_NONE; + private @TransitionMode int mMode = TRANSIT_NONE; private final Rect mStartAbsBounds = new Rect(); private final Rect mEndAbsBounds = new Rect(); private final Point mEndRelOffset = new Point(); diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/ShellInit.java b/libs/WindowManager/Shell/src/com/android/wm/shell/ShellInit.java index 94555de4f05cc..6c08079e586ea 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/ShellInit.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/ShellInit.java @@ -40,6 +40,7 @@ public class ShellInit { private final Optional mAppPairsOptional; private final LetterboxTaskListener mLetterboxTaskListener; private final FullscreenTaskListener mFullscreenTaskListener; + private final Transitions mTransitions; public ShellInit(DisplayImeController displayImeController, DragAndDropController dragAndDropController, @@ -47,7 +48,8 @@ public class ShellInit { Optional splitScreenOptional, Optional appPairsOptional, LetterboxTaskListener letterboxTaskListener, - FullscreenTaskListener fullscreenTaskListener) { + FullscreenTaskListener fullscreenTaskListener, + Transitions transitions) { mDisplayImeController = displayImeController; mDragAndDropController = dragAndDropController; mShellTaskOrganizer = shellTaskOrganizer; @@ -55,6 +57,7 @@ public class ShellInit { mAppPairsOptional = appPairsOptional; mLetterboxTaskListener = letterboxTaskListener; mFullscreenTaskListener = fullscreenTaskListener; + mTransitions = transitions; } @ExternalThread @@ -72,5 +75,9 @@ public class ShellInit { mAppPairsOptional.ifPresent(AppPairs::onOrganizerRegistered); // Bind the splitscreen impl to the drag drop controller mDragAndDropController.setSplitScreenController(mSplitScreenOptional); + + if (Transitions.ENABLE_SHELL_TRANSITIONS) { + mTransitions.register(mShellTaskOrganizer); + } } } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/ShellTaskOrganizer.java b/libs/WindowManager/Shell/src/com/android/wm/shell/ShellTaskOrganizer.java index e68a7471fdaf2..62d265aab38fd 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/ShellTaskOrganizer.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/ShellTaskOrganizer.java @@ -43,8 +43,6 @@ import androidx.annotation.Nullable; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.protolog.common.ProtoLog; import com.android.wm.shell.common.ShellExecutor; -import com.android.wm.shell.common.SyncTransactionQueue; -import com.android.wm.shell.common.TransactionPool; import com.android.wm.shell.startingsurface.StartingSurfaceDrawer; import java.io.PrintWriter; @@ -102,24 +100,17 @@ public class ShellTaskOrganizer extends TaskOrganizer { /** @see #setPendingLaunchCookieListener */ private final ArrayMap mLaunchCookieToListener = new ArrayMap<>(); - // TODO(shell-transitions): move to a more "global" Shell location as this isn't only for Tasks - private final Transitions mTransitions; - private final Object mLock = new Object(); private final StartingSurfaceDrawer mStartingSurfaceDrawer; - public ShellTaskOrganizer(SyncTransactionQueue syncQueue, TransactionPool transactionPool, - ShellExecutor mainExecutor, ShellExecutor animExecutor, Context context) { - this(null, syncQueue, transactionPool, mainExecutor, animExecutor, context); + public ShellTaskOrganizer(ShellExecutor mainExecutor, Context context) { + this(null, mainExecutor, context); } @VisibleForTesting - ShellTaskOrganizer(ITaskOrganizerController taskOrganizerController, - SyncTransactionQueue syncQueue, TransactionPool transactionPool, - ShellExecutor mainExecutor, ShellExecutor animExecutor, Context context) { + ShellTaskOrganizer(ITaskOrganizerController taskOrganizerController, ShellExecutor mainExecutor, + Context context) { super(taskOrganizerController, mainExecutor); - mTransitions = new Transitions(this, transactionPool, mainExecutor, animExecutor); - if (Transitions.ENABLE_SHELL_TRANSITIONS) mTransitions.register(this); // TODO(b/131727939) temporarily live here, the starting surface drawer should be controlled // by a controller, that class should be create while porting // ActivityRecord#addStartingWindow to WMShell. diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/Transitions.java b/libs/WindowManager/Shell/src/com/android/wm/shell/Transitions.java index 10195b6a26b28..a779531f8b912 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/Transitions.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/Transitions.java @@ -16,10 +16,10 @@ package com.android.wm.shell; -import static android.window.TransitionInfo.TRANSIT_CLOSE; -import static android.window.TransitionInfo.TRANSIT_HIDE; -import static android.window.TransitionInfo.TRANSIT_OPEN; -import static android.window.TransitionInfo.TRANSIT_SHOW; +import static android.view.WindowManager.TRANSIT_CLOSE; +import static android.view.WindowManager.TRANSIT_OPEN; +import static android.view.WindowManager.TRANSIT_TO_BACK; +import static android.view.WindowManager.TRANSIT_TO_FRONT; import android.animation.Animator; import android.animation.ValueAnimator; @@ -40,7 +40,6 @@ import androidx.annotation.BinderThread; import com.android.internal.protolog.common.ProtoLog; import com.android.wm.shell.common.ShellExecutor; import com.android.wm.shell.common.TransactionPool; -import com.android.wm.shell.common.annotations.ShellMainThread; import com.android.wm.shell.protolog.ShellProtoLogGroup; import java.util.ArrayList; @@ -62,7 +61,7 @@ public class Transitions { /** Keeps track of currently tracked transitions and all the animations associated with each */ private final ArrayMap> mActiveTransitions = new ArrayMap<>(); - Transitions(@NonNull WindowOrganizer organizer, @NonNull TransactionPool pool, + public Transitions(@NonNull WindowOrganizer organizer, @NonNull TransactionPool pool, @NonNull ShellExecutor mainExecutor, @NonNull ShellExecutor animExecutor) { mOrganizer = organizer; mTransactionPool = pool; @@ -119,8 +118,8 @@ public class Transitions { } private static boolean isOpeningType(@WindowManager.TransitionType int type) { - return type == WindowManager.TRANSIT_OPEN - || type == WindowManager.TRANSIT_TO_FRONT + return type == TRANSIT_OPEN + || type == TRANSIT_TO_FRONT || type == WindowManager.TRANSIT_KEYGUARD_GOING_AWAY; } @@ -150,7 +149,7 @@ public class Transitions { // Don't animate anything with an animating parent if (change.getParent() != null) { - if (mode == TRANSIT_OPEN || mode == TRANSIT_SHOW) { + if (mode == TRANSIT_OPEN || mode == TRANSIT_TO_FRONT) { t.show(leash); t.setMatrix(leash, 1, 0, 0, 1); } @@ -161,7 +160,7 @@ public class Transitions { t.setPosition(leash, change.getEndAbsBounds().left - info.getRootOffset().x, change.getEndAbsBounds().top - info.getRootOffset().y); // Put all the OPEN/SHOW on top - if (mode == TRANSIT_OPEN || mode == TRANSIT_SHOW) { + if (mode == TRANSIT_OPEN || mode == TRANSIT_TO_FRONT) { t.show(leash); t.setMatrix(leash, 1, 0, 0, 1); if (isOpening) { @@ -174,7 +173,7 @@ public class Transitions { t.setLayer(leash, -i); t.setAlpha(leash, 1.f); } - } else if (mode == TRANSIT_CLOSE || mode == TRANSIT_HIDE) { + } else if (mode == TRANSIT_CLOSE || mode == TRANSIT_TO_BACK) { if (isOpening) { // put on bottom and leave visible without fade t.setLayer(leash, -i); diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/ShellTaskOrganizerTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/ShellTaskOrganizerTests.java index fdf4d31f0281a..3ff750af7ec99 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/ShellTaskOrganizerTests.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/ShellTaskOrganizerTests.java @@ -108,8 +108,7 @@ public class ShellTaskOrganizerTests { doReturn(ParceledListSlice.emptyList()) .when(mTaskOrganizerController).registerTaskOrganizer(any()); } catch (RemoteException e) {} - mOrganizer = spy(new ShellTaskOrganizer(mTaskOrganizerController, mSyncTransactionQueue, - mTransactionPool, mTestExecutor, mTestExecutor, mContext)); + mOrganizer = spy(new ShellTaskOrganizer(mTaskOrganizerController, mTestExecutor, mContext)); } @Test diff --git a/packages/SystemUI/src/com/android/systemui/wmshell/WMShellBaseModule.java b/packages/SystemUI/src/com/android/systemui/wmshell/WMShellBaseModule.java index 71a883d20988c..654e92270c9ab 100644 --- a/packages/SystemUI/src/com/android/systemui/wmshell/WMShellBaseModule.java +++ b/packages/SystemUI/src/com/android/systemui/wmshell/WMShellBaseModule.java @@ -37,6 +37,7 @@ import com.android.wm.shell.FullscreenTaskListener; import com.android.wm.shell.ShellCommandHandler; import com.android.wm.shell.ShellInit; import com.android.wm.shell.ShellTaskOrganizer; +import com.android.wm.shell.Transitions; import com.android.wm.shell.WindowManagerShellWrapper; import com.android.wm.shell.apppairs.AppPairs; import com.android.wm.shell.bubbles.BubbleController; @@ -173,14 +174,16 @@ public abstract class WMShellBaseModule { Optional splitScreenOptional, Optional appPairsOptional, LetterboxTaskListener letterboxTaskListener, - FullscreenTaskListener fullscreenTaskListener) { + FullscreenTaskListener fullscreenTaskListener, + Transitions transitions) { return new ShellInit(displayImeController, dragAndDropController, shellTaskOrganizer, splitScreenOptional, appPairsOptional, letterboxTaskListener, - fullscreenTaskListener); + fullscreenTaskListener, + transitions); } /** @@ -278,12 +281,9 @@ public abstract class WMShellBaseModule { @WMSingleton @Provides - static ShellTaskOrganizer provideShellTaskOrganizer(SyncTransactionQueue syncQueue, - @ShellMainThread ShellExecutor shellMainExecutor, - @ShellAnimationThread ShellExecutor shellAnimationExecutor, - TransactionPool transactionPool, Context context) { - return new ShellTaskOrganizer(syncQueue, transactionPool, shellMainExecutor, - shellAnimationExecutor, context); + static ShellTaskOrganizer provideShellTaskOrganizer(@ShellMainThread ShellExecutor mainExecutor, + Context context) { + return new ShellTaskOrganizer(mainExecutor, context); } @WMSingleton @@ -350,4 +350,12 @@ public abstract class WMShellBaseModule { static LetterboxConfigController provideLetterboxConfigController(Context context) { return new LetterboxConfigController(context); } + + @WMSingleton + @Provides + static Transitions provideTransitions(ShellTaskOrganizer organizer, TransactionPool pool, + @ShellMainThread ShellExecutor mainExecutor, + @ShellAnimationThread ShellExecutor animExecutor) { + return new Transitions(organizer, pool, mainExecutor, animExecutor); + } } diff --git a/services/core/java/com/android/server/wm/AppTransition.java b/services/core/java/com/android/server/wm/AppTransition.java index 758aaa0fee9a2..605a23e065a5d 100644 --- a/services/core/java/com/android/server/wm/AppTransition.java +++ b/services/core/java/com/android/server/wm/AppTransition.java @@ -17,7 +17,7 @@ package com.android.server.wm; import static android.view.WindowManager.LayoutParams; -import static android.view.WindowManager.TRANSIT_CHANGE_WINDOWING_MODE; +import static android.view.WindowManager.TRANSIT_CHANGE; import static android.view.WindowManager.TRANSIT_CLOSE; import static android.view.WindowManager.TRANSIT_FLAG_APP_CRASHED; import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_GOING_AWAY_NO_ANIMATION; @@ -2092,8 +2092,8 @@ public class AppTransition implements Dump { case TRANSIT_RELAUNCH: { return "TRANSIT_RELAUNCH"; } - case TRANSIT_CHANGE_WINDOWING_MODE: { - return "TRANSIT_CHANGE_WINDOWING_MODE"; + case TRANSIT_CHANGE: { + return "TRANSIT_CHANGE"; } case TRANSIT_KEYGUARD_GOING_AWAY: { return "TRANSIT_KEYGUARD_GOING_AWAY"; diff --git a/services/core/java/com/android/server/wm/AppTransitionController.java b/services/core/java/com/android/server/wm/AppTransitionController.java index 64cbb0dec6351..dde527d161e0f 100644 --- a/services/core/java/com/android/server/wm/AppTransitionController.java +++ b/services/core/java/com/android/server/wm/AppTransitionController.java @@ -17,7 +17,7 @@ package com.android.server.wm; import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER; -import static android.view.WindowManager.TRANSIT_CHANGE_WINDOWING_MODE; +import static android.view.WindowManager.TRANSIT_CHANGE; import static android.view.WindowManager.TRANSIT_CLOSE; import static android.view.WindowManager.TRANSIT_FLAG_APP_CRASHED; import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_GOING_AWAY_NO_ANIMATION; @@ -303,7 +303,7 @@ public class AppTransitionController { // Special transitions // TODO(new-app-transitions): Revisit if those can be rewritten by using flags. - if (appTransition.containsTransitRequest(TRANSIT_CHANGE_WINDOWING_MODE)) { + if (appTransition.containsTransitRequest(TRANSIT_CHANGE)) { return TRANSIT_OLD_TASK_CHANGE_WINDOWING_MODE; } if ((flags & TRANSIT_FLAG_APP_CRASHED) != 0) { diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index 8564cbc02df82..ff7e68eb383e6 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -59,7 +59,7 @@ import static android.provider.Settings.Secure.USER_SETUP_COMPLETE; import static android.view.Display.DEFAULT_DISPLAY; import static android.view.Display.INVALID_DISPLAY; import static android.view.SurfaceControl.METADATA_TASK_ID; -import static android.view.WindowManager.TRANSIT_CHANGE_WINDOWING_MODE; +import static android.view.WindowManager.TRANSIT_CHANGE; import static android.view.WindowManager.TRANSIT_CLOSE; import static android.view.WindowManager.TRANSIT_FLAG_APP_CRASHED; import static android.view.WindowManager.TRANSIT_FLAG_OPEN_BEHIND; @@ -2356,7 +2356,7 @@ class Task extends WindowContainer { * Initializes a change transition. See {@link SurfaceFreezer} for more information. */ private void initializeChangeTransition(Rect startBounds) { - mDisplayContent.prepareAppTransition(TRANSIT_CHANGE_WINDOWING_MODE); + mDisplayContent.prepareAppTransition(TRANSIT_CHANGE); mDisplayContent.mChangingContainers.add(this); mSurfaceFreezer.freeze(getPendingTransaction(), startBounds); @@ -2440,8 +2440,7 @@ class Task extends WindowContainer { @Override public SurfaceControl getFreezeSnapshotTarget() { - if (!mDisplayContent.mAppTransition.containsTransitRequest( - TRANSIT_CHANGE_WINDOWING_MODE)) { + if (!mDisplayContent.mAppTransition.containsTransitRequest(TRANSIT_CHANGE)) { return null; } // Skip creating snapshot if this transition is controlled by a remote animator which diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java index 0cdd055d40524..9759486eff0f9 100644 --- a/services/core/java/com/android/server/wm/Transition.java +++ b/services/core/java/com/android/server/wm/Transition.java @@ -18,11 +18,17 @@ package com.android.server.wm; import static android.view.Display.DEFAULT_DISPLAY; +import static android.view.WindowManager.TRANSIT_CHANGE; +import static android.view.WindowManager.TRANSIT_CLOSE; import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_GOING_AWAY_NO_ANIMATION; import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_GOING_AWAY_SUBTLE_ANIMATION; import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_GOING_AWAY_TO_SHADE; import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_GOING_AWAY_WITH_WALLPAPER; import static android.view.WindowManager.TRANSIT_KEYGUARD_GOING_AWAY; +import static android.view.WindowManager.TRANSIT_NONE; +import static android.view.WindowManager.TRANSIT_OPEN; +import static android.view.WindowManager.TRANSIT_TO_BACK; +import static android.view.WindowManager.TRANSIT_TO_FRONT; import android.annotation.IntDef; import android.annotation.NonNull; @@ -389,7 +395,7 @@ class Transition extends Binder implements BLASTSyncEngine.TransactionReadyListe parent == null ? "no parent" : ("parent can't be target " + parent)); return false; } - @TransitionInfo.TransitionMode int mode = TransitionInfo.TRANSIT_NONE; + @TransitionInfo.TransitionMode int mode = TRANSIT_NONE; // Go through all siblings of this target to see if any of them would prevent // the target from promoting. siblingLoop: @@ -403,11 +409,11 @@ class Transition extends Binder implements BLASTSyncEngine.TransactionReadyListe if (depth < 0) continue; if (depth == 0) { final int siblingMode = sibling.isVisibleRequested() - ? TransitionInfo.TRANSIT_OPEN : TransitionInfo.TRANSIT_CLOSE; + ? TRANSIT_OPEN : TRANSIT_CLOSE; ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " sibling is a top target with mode %s", TransitionInfo.modeToString(siblingMode)); - if (mode == TransitionInfo.TRANSIT_NONE) { + if (mode == TRANSIT_NONE) { ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " no common mode yet, so set it"); mode = siblingMode; @@ -693,12 +699,12 @@ class Transition extends Binder implements BLASTSyncEngine.TransactionReadyListe int getTransitMode(@NonNull WindowContainer wc) { final boolean nowVisible = wc.isVisibleRequested(); if (nowVisible == mVisible) { - return TransitionInfo.TRANSIT_CHANGE; + return TRANSIT_CHANGE; } if (mExistenceChanged) { - return nowVisible ? TransitionInfo.TRANSIT_OPEN : TransitionInfo.TRANSIT_CLOSE; + return nowVisible ? TRANSIT_OPEN : TRANSIT_CLOSE; } else { - return nowVisible ? TransitionInfo.TRANSIT_SHOW : TransitionInfo.TRANSIT_HIDE; + return nowVisible ? TRANSIT_TO_FRONT : TRANSIT_TO_BACK; } } diff --git a/services/tests/wmtests/src/com/android/server/wm/AppTransitionControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/AppTransitionControllerTest.java index 8cad56a455187..295c50bcda553 100644 --- a/services/tests/wmtests/src/com/android/server/wm/AppTransitionControllerTest.java +++ b/services/tests/wmtests/src/com/android/server/wm/AppTransitionControllerTest.java @@ -20,7 +20,7 @@ import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION; -import static android.view.WindowManager.TRANSIT_CHANGE_WINDOWING_MODE; +import static android.view.WindowManager.TRANSIT_CHANGE; import static android.view.WindowManager.TRANSIT_CLOSE; import static android.view.WindowManager.TRANSIT_OLD_ACTIVITY_OPEN; import static android.view.WindowManager.TRANSIT_OLD_TASK_CHANGE_WINDOWING_MODE; @@ -111,7 +111,7 @@ public class AppTransitionControllerTest extends WindowTestsBase { WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD); translucentOpening.setOccludesParent(false); translucentOpening.setVisible(false); - mDisplayContent.prepareAppTransition(TRANSIT_CHANGE_WINDOWING_MODE); + mDisplayContent.prepareAppTransition(TRANSIT_CHANGE); mDisplayContent.mOpeningApps.add(behind); mDisplayContent.mOpeningApps.add(translucentOpening); assertEquals(TRANSIT_OLD_TASK_CHANGE_WINDOWING_MODE, diff --git a/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java b/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java index 4909b1d7629e5..bffdd5abc9459 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java @@ -20,8 +20,8 @@ import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.view.WindowManager.TRANSIT_OLD_TASK_OPEN; -import static android.window.TransitionInfo.TRANSIT_HIDE; -import static android.window.TransitionInfo.TRANSIT_OPEN; +import static android.view.WindowManager.TRANSIT_OPEN; +import static android.view.WindowManager.TRANSIT_TO_BACK; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -237,7 +237,7 @@ public class TransitionTests extends WindowTestsBase { assertEquals(TRANSIT_OPEN, info.getChange(openTask.mRemoteToken.toWindowContainerToken()).getMode()); // No exestence change on closing, so HIDE rather than CLOSE - assertEquals(TRANSIT_HIDE, + assertEquals(TRANSIT_TO_BACK, info.getChange(closeTask.mRemoteToken.toWindowContainerToken()).getMode()); }