diff options
| author | 2022-09-17 12:47:32 +0000 | |
|---|---|---|
| committer | 2022-09-17 12:47:32 +0000 | |
| commit | ef854fbdb9a67c585d590f97d34a80910ccb60f3 (patch) | |
| tree | 9d8a667a17c1bd339af47c80885850817d0394a2 /libs | |
| parent | 00db9419a789909e833cbc564ba9a28ec232216a (diff) | |
| parent | ddf207959e8df16913653a0afae5affb2f963c68 (diff) | |
Merge "Use transition for desktop-mode switch when enabled" into tm-qpr-dev am: d6c6f5865f am: ddf207959e
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19973186
Change-Id: I2f3596acc2bcbd4cf94eb58750ddb5fe4cbb1d66
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'libs')
3 files changed, 18 insertions, 6 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java index 18ce3642335d..247ba605ae58 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java @@ -599,12 +599,12 @@ public abstract class WMShellModule { Context context, ShellInit shellInit, ShellTaskOrganizer shellTaskOrganizer, RootDisplayAreaOrganizer rootDisplayAreaOrganizer, - @ShellMainThread Handler mainHandler + @ShellMainThread Handler mainHandler, + Transitions transitions ) { if (DesktopMode.IS_SUPPORTED) { return Optional.of(new DesktopModeController(context, shellInit, shellTaskOrganizer, - rootDisplayAreaOrganizer, - mainHandler)); + rootDisplayAreaOrganizer, mainHandler, transitions)); } else { return Optional.empty(); } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeController.java index 7d34ea481de6..c07ce1065302 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeController.java @@ -18,6 +18,7 @@ package com.android.wm.shell.desktopmode; import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; +import static android.view.WindowManager.TRANSIT_CHANGE; import static com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_DESKTOP_MODE; @@ -37,6 +38,7 @@ import com.android.wm.shell.RootDisplayAreaOrganizer; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.common.annotations.ShellMainThread; import com.android.wm.shell.sysui.ShellInit; +import com.android.wm.shell.transition.Transitions; /** * Handles windowing changes when desktop mode system setting changes @@ -47,15 +49,18 @@ public class DesktopModeController { private final ShellTaskOrganizer mShellTaskOrganizer; private final RootDisplayAreaOrganizer mRootDisplayAreaOrganizer; private final SettingsObserver mSettingsObserver; + private final Transitions mTransitions; public DesktopModeController(Context context, ShellInit shellInit, ShellTaskOrganizer shellTaskOrganizer, RootDisplayAreaOrganizer rootDisplayAreaOrganizer, - @ShellMainThread Handler mainHandler) { + @ShellMainThread Handler mainHandler, + Transitions transitions) { mContext = context; mShellTaskOrganizer = shellTaskOrganizer; mRootDisplayAreaOrganizer = rootDisplayAreaOrganizer; mSettingsObserver = new SettingsObserver(mContext, mainHandler); + mTransitions = transitions; shellInit.addInitCallback(this::onInit, this); } @@ -89,7 +94,11 @@ public class DesktopModeController { } wct.merge(mRootDisplayAreaOrganizer.prepareWindowingModeChange(displayId, targetWindowingMode), true /* transfer */); - mRootDisplayAreaOrganizer.applyTransaction(wct); + if (Transitions.ENABLE_SHELL_TRANSITIONS) { + mTransitions.startTransition(TRANSIT_CHANGE, wct, null); + } else { + mRootDisplayAreaOrganizer.applyTransaction(wct); + } } /** diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeControllerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeControllerTest.java index ef532e449bd6..577942505b13 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeControllerTest.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeControllerTest.java @@ -43,6 +43,7 @@ import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.ShellTestCase; import com.android.wm.shell.common.ShellExecutor; import com.android.wm.shell.sysui.ShellInit; +import com.android.wm.shell.transition.Transitions; import org.junit.Before; import org.junit.Test; @@ -63,6 +64,8 @@ public class DesktopModeControllerTest extends ShellTestCase { private ShellExecutor mTestExecutor; @Mock private Handler mMockHandler; + @Mock + private Transitions mMockTransitions; private DesktopModeController mController; private ShellInit mShellInit; @@ -72,7 +75,7 @@ public class DesktopModeControllerTest extends ShellTestCase { mShellInit = Mockito.spy(new ShellInit(mTestExecutor)); mController = new DesktopModeController(mContext, mShellInit, mShellTaskOrganizer, - mRootDisplayAreaOrganizer, mMockHandler); + mRootDisplayAreaOrganizer, mMockHandler, mMockTransitions); mShellInit.init(); } |