Loading libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIController.java +9 −4 Original line number Diff line number Diff line Loading @@ -59,7 +59,7 @@ import com.android.wm.shell.compatui.api.CompatUIRequest; import com.android.wm.shell.compatui.impl.CompatUIEvents.SizeCompatRestartButtonClicked; import com.android.wm.shell.compatui.impl.CompatUIRequests; import com.android.wm.shell.desktopmode.DesktopUserRepositories; import com.android.wm.shell.shared.desktopmode.DesktopModeStatus; import com.android.wm.shell.shared.desktopmode.DesktopState; import com.android.wm.shell.sysui.KeyguardChangeListener; import com.android.wm.shell.sysui.ShellController; import com.android.wm.shell.sysui.ShellInit; Loading Loading @@ -208,6 +208,9 @@ public class CompatUIController implements OnDisplaysChangedListener, @NonNull private final Optional<DesktopUserRepositories> mDesktopUserRepositories; @NonNull private final DesktopState mDesktopState; public CompatUIController(@NonNull Context context, @NonNull ShellInit shellInit, @NonNull ShellController shellController, Loading @@ -222,7 +225,8 @@ public class CompatUIController implements OnDisplaysChangedListener, @NonNull CompatUIShellCommandHandler compatUIShellCommandHandler, @NonNull AccessibilityManager accessibilityManager, @NonNull CompatUIStatusManager compatUIStatusManager, @NonNull Optional<DesktopUserRepositories> desktopUserRepositories) { @NonNull Optional<DesktopUserRepositories> desktopUserRepositories, @NonNull DesktopState desktopState) { mContext = context; mShellController = shellController; mDisplayController = displayController; Loading @@ -239,6 +243,7 @@ public class CompatUIController implements OnDisplaysChangedListener, DISAPPEAR_DELAY_MS, flags); mCompatUIStatusManager = compatUIStatusManager; mDesktopUserRepositories = desktopUserRepositories; mDesktopState = desktopState; shellInit.addInitCallback(this::onInit, this); } Loading Loading @@ -520,7 +525,7 @@ public class CompatUIController implements OnDisplaysChangedListener, return new CompatUIWindowManager(context, taskInfo, mSyncQueue, mCallback, taskListener, mDisplayController.getDisplayLayout(taskInfo.displayId), mCompatUIHintsState, mCompatUIConfiguration, this::onRestartButtonClicked); mCompatUIConfiguration, this::onRestartButtonClicked, mDesktopState); } private void onRestartButtonClicked( Loading Loading @@ -709,7 +714,7 @@ public class CompatUIController implements OnDisplaysChangedListener, private void createOrUpdateUserAspectRatioSettingsLayout(@NonNull TaskInfo taskInfo, @Nullable ShellTaskOrganizer.TaskListener taskListener) { boolean overridesShowAppHandle = DesktopModeStatus.overridesShowAppHandle(mContext); boolean overridesShowAppHandle = mDesktopState.overridesShowAppHandle(); if (mUserAspectRatioSettingsLayout != null) { if (mUserAspectRatioSettingsLayout.needsToBeRecreated(taskInfo, taskListener) || mIsInDesktopMode || overridesShowAppHandle) { Loading libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIWindowManager.java +9 −4 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ import com.android.wm.shell.common.SyncTransactionQueue; import com.android.wm.shell.compatui.CompatUIController.CompatUIHintsState; import com.android.wm.shell.compatui.api.CompatUIEvent; import com.android.wm.shell.compatui.impl.CompatUIEvents.SizeCompatRestartButtonAppeared; import com.android.wm.shell.shared.desktopmode.DesktopModeStatus; import com.android.wm.shell.shared.desktopmode.DesktopState; import java.util.function.Consumer; Loading Loading @@ -74,6 +74,9 @@ class CompatUIWindowManager extends CompatUIWindowManagerAbstract { @NonNull private final Rect mLayoutBounds = new Rect(); @NonNull private final DesktopState mDesktopState; CompatUIWindowManager(@NonNull Context context, @NonNull TaskInfo taskInfo, @NonNull SyncTransactionQueue syncQueue, @NonNull Consumer<CompatUIEvent> callback, Loading @@ -82,11 +85,12 @@ class CompatUIWindowManager extends CompatUIWindowManagerAbstract { @NonNull CompatUIHintsState compatUIHintsState, @NonNull CompatUIConfiguration compatUIConfiguration, @NonNull Consumer<Pair<TaskInfo, ShellTaskOrganizer.TaskListener>> onRestartButtonClicked) { onRestartButtonClicked, @NonNull DesktopState desktopState) { super(context, taskInfo, syncQueue, taskListener, displayLayout); mCallback = callback; mHasSizeCompat = taskInfo.appCompatTaskInfo.isTopActivityInSizeCompat(); if (DesktopModeStatus.canEnterDesktopMode(context) if (desktopState.canEnterDesktopMode() && DesktopModeFlags.ENABLE_WINDOWING_DYNAMIC_INITIAL_BOUNDS.isTrue()) { // Don't show the SCM button for freeform tasks mHasSizeCompat &= !taskInfo.isFreeform(); Loading @@ -95,6 +99,7 @@ class CompatUIWindowManager extends CompatUIWindowManagerAbstract { mCompatUIConfiguration = compatUIConfiguration; mOnRestartButtonClicked = onRestartButtonClicked; mHideScmTolerance = mCompatUIConfiguration.getHideSizeCompatRestartButtonTolerance(); mDesktopState = desktopState; } @Override Loading Loading @@ -143,7 +148,7 @@ class CompatUIWindowManager extends CompatUIWindowManagerAbstract { boolean canShow) { final boolean prevHasSizeCompat = mHasSizeCompat; mHasSizeCompat = taskInfo.appCompatTaskInfo.isTopActivityInSizeCompat(); if (DesktopModeStatus.canEnterDesktopMode(mContext) if (mDesktopState.canEnterDesktopMode() && DesktopModeFlags.ENABLE_WINDOWING_DYNAMIC_INITIAL_BOUNDS.isTrue()) { // Don't show the SCM button for freeform tasks mHasSizeCompat &= !taskInfo.isFreeform(); Loading libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java +4 −2 Original line number Diff line number Diff line Loading @@ -297,7 +297,8 @@ public abstract class WMShellBaseModule { @NonNull CompatUIState compatUIState, @NonNull CompatUIComponentIdGenerator componentIdGenerator, @NonNull CompatUIComponentFactory compatUIComponentFactory, CompatUIStatusManager compatUIStatusManager) { CompatUIStatusManager compatUIStatusManager, DesktopState desktopState) { if (!context.getResources().getBoolean(R.bool.config_enableCompatUIController)) { return Optional.empty(); } Loading @@ -322,7 +323,8 @@ public abstract class WMShellBaseModule { compatUIShellCommandHandler.get(), accessibilityManager.get(), compatUIStatusManager, desktopUserRepositories)); desktopUserRepositories, desktopState)); } @WMSingleton Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/compatui/CompatUIControllerTest.java +6 −1 Original line number Diff line number Diff line Loading @@ -62,6 +62,7 @@ import com.android.wm.shell.compatui.api.CompatUIInfo; import com.android.wm.shell.compatui.impl.CompatUIRequests; import com.android.wm.shell.desktopmode.DesktopRepository; import com.android.wm.shell.desktopmode.DesktopUserRepositories; import com.android.wm.shell.shared.desktopmode.FakeDesktopState; import com.android.wm.shell.sysui.ShellController; import com.android.wm.shell.sysui.ShellInit; import com.android.wm.shell.transition.Transitions; Loading Loading @@ -135,12 +136,15 @@ public class CompatUIControllerTest extends ShellTestCase { @NonNull private CompatUIStatusManager mCompatUIStatusManager; @NonNull private FakeDesktopState mDesktopState; @Before public void setUp() { MockitoAnnotations.initMocks(this); mDesktopState = new FakeDesktopState(); doReturn(mMockDisplayLayout).when(mMockDisplayController).getDisplayLayout(anyInt()); doReturn(DISPLAY_ID).when(mMockCompatLayout).getDisplayId(); doReturn(TASK_ID).when(mMockCompatLayout).getTaskId(); Loading @@ -164,7 +168,8 @@ public class CompatUIControllerTest extends ShellTestCase { mMockDisplayController, mMockDisplayInsetsController, mMockImeController, mMockSyncQueue, mMockExecutor, mMockTransitionsLazy, mDockStateReader, mCompatUIConfiguration, mCompatUIShellCommandHandler, mAccessibilityManager, mCompatUIStatusManager, Optional.of(mDesktopUserRepositories)) { mCompatUIStatusManager, Optional.of(mDesktopUserRepositories), mDesktopState) { @Override CompatUIWindowManager createCompatUiWindowManager(Context context, TaskInfo taskInfo, ShellTaskOrganizer.TaskListener taskListener) { Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/compatui/CompatUILayoutTest.java +4 −1 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import com.android.wm.shell.common.DisplayLayout; import com.android.wm.shell.common.SyncTransactionQueue; import com.android.wm.shell.compatui.CompatUIController.CompatUIHintsState; import com.android.wm.shell.compatui.api.CompatUIEvent; import com.android.wm.shell.shared.desktopmode.FakeDesktopState; import junit.framework.Assert; Loading Loading @@ -77,15 +78,17 @@ public class CompatUILayoutTest extends ShellTestCase { private CompatUIWindowManager mWindowManager; private CompatUILayout mLayout; private TaskInfo mTaskInfo; private FakeDesktopState mDesktopState; @Before public void setUp() { MockitoAnnotations.initMocks(this); mDesktopState = new FakeDesktopState(); doReturn(100).when(mCompatUIConfiguration).getHideSizeCompatRestartButtonTolerance(); mTaskInfo = createTaskInfo(/* hasSizeCompat= */ false); mWindowManager = new CompatUIWindowManager(mContext, mTaskInfo, mSyncTransactionQueue, mCallback, mTaskListener, new DisplayLayout(), new CompatUIHintsState(), mCompatUIConfiguration, mOnRestartButtonClicked); mCompatUIConfiguration, mOnRestartButtonClicked, mDesktopState); mLayout = (CompatUILayout) LayoutInflater.from(mContext).inflate(R.layout.compat_ui_layout, null); Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIController.java +9 −4 Original line number Diff line number Diff line Loading @@ -59,7 +59,7 @@ import com.android.wm.shell.compatui.api.CompatUIRequest; import com.android.wm.shell.compatui.impl.CompatUIEvents.SizeCompatRestartButtonClicked; import com.android.wm.shell.compatui.impl.CompatUIRequests; import com.android.wm.shell.desktopmode.DesktopUserRepositories; import com.android.wm.shell.shared.desktopmode.DesktopModeStatus; import com.android.wm.shell.shared.desktopmode.DesktopState; import com.android.wm.shell.sysui.KeyguardChangeListener; import com.android.wm.shell.sysui.ShellController; import com.android.wm.shell.sysui.ShellInit; Loading Loading @@ -208,6 +208,9 @@ public class CompatUIController implements OnDisplaysChangedListener, @NonNull private final Optional<DesktopUserRepositories> mDesktopUserRepositories; @NonNull private final DesktopState mDesktopState; public CompatUIController(@NonNull Context context, @NonNull ShellInit shellInit, @NonNull ShellController shellController, Loading @@ -222,7 +225,8 @@ public class CompatUIController implements OnDisplaysChangedListener, @NonNull CompatUIShellCommandHandler compatUIShellCommandHandler, @NonNull AccessibilityManager accessibilityManager, @NonNull CompatUIStatusManager compatUIStatusManager, @NonNull Optional<DesktopUserRepositories> desktopUserRepositories) { @NonNull Optional<DesktopUserRepositories> desktopUserRepositories, @NonNull DesktopState desktopState) { mContext = context; mShellController = shellController; mDisplayController = displayController; Loading @@ -239,6 +243,7 @@ public class CompatUIController implements OnDisplaysChangedListener, DISAPPEAR_DELAY_MS, flags); mCompatUIStatusManager = compatUIStatusManager; mDesktopUserRepositories = desktopUserRepositories; mDesktopState = desktopState; shellInit.addInitCallback(this::onInit, this); } Loading Loading @@ -520,7 +525,7 @@ public class CompatUIController implements OnDisplaysChangedListener, return new CompatUIWindowManager(context, taskInfo, mSyncQueue, mCallback, taskListener, mDisplayController.getDisplayLayout(taskInfo.displayId), mCompatUIHintsState, mCompatUIConfiguration, this::onRestartButtonClicked); mCompatUIConfiguration, this::onRestartButtonClicked, mDesktopState); } private void onRestartButtonClicked( Loading Loading @@ -709,7 +714,7 @@ public class CompatUIController implements OnDisplaysChangedListener, private void createOrUpdateUserAspectRatioSettingsLayout(@NonNull TaskInfo taskInfo, @Nullable ShellTaskOrganizer.TaskListener taskListener) { boolean overridesShowAppHandle = DesktopModeStatus.overridesShowAppHandle(mContext); boolean overridesShowAppHandle = mDesktopState.overridesShowAppHandle(); if (mUserAspectRatioSettingsLayout != null) { if (mUserAspectRatioSettingsLayout.needsToBeRecreated(taskInfo, taskListener) || mIsInDesktopMode || overridesShowAppHandle) { Loading
libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIWindowManager.java +9 −4 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ import com.android.wm.shell.common.SyncTransactionQueue; import com.android.wm.shell.compatui.CompatUIController.CompatUIHintsState; import com.android.wm.shell.compatui.api.CompatUIEvent; import com.android.wm.shell.compatui.impl.CompatUIEvents.SizeCompatRestartButtonAppeared; import com.android.wm.shell.shared.desktopmode.DesktopModeStatus; import com.android.wm.shell.shared.desktopmode.DesktopState; import java.util.function.Consumer; Loading Loading @@ -74,6 +74,9 @@ class CompatUIWindowManager extends CompatUIWindowManagerAbstract { @NonNull private final Rect mLayoutBounds = new Rect(); @NonNull private final DesktopState mDesktopState; CompatUIWindowManager(@NonNull Context context, @NonNull TaskInfo taskInfo, @NonNull SyncTransactionQueue syncQueue, @NonNull Consumer<CompatUIEvent> callback, Loading @@ -82,11 +85,12 @@ class CompatUIWindowManager extends CompatUIWindowManagerAbstract { @NonNull CompatUIHintsState compatUIHintsState, @NonNull CompatUIConfiguration compatUIConfiguration, @NonNull Consumer<Pair<TaskInfo, ShellTaskOrganizer.TaskListener>> onRestartButtonClicked) { onRestartButtonClicked, @NonNull DesktopState desktopState) { super(context, taskInfo, syncQueue, taskListener, displayLayout); mCallback = callback; mHasSizeCompat = taskInfo.appCompatTaskInfo.isTopActivityInSizeCompat(); if (DesktopModeStatus.canEnterDesktopMode(context) if (desktopState.canEnterDesktopMode() && DesktopModeFlags.ENABLE_WINDOWING_DYNAMIC_INITIAL_BOUNDS.isTrue()) { // Don't show the SCM button for freeform tasks mHasSizeCompat &= !taskInfo.isFreeform(); Loading @@ -95,6 +99,7 @@ class CompatUIWindowManager extends CompatUIWindowManagerAbstract { mCompatUIConfiguration = compatUIConfiguration; mOnRestartButtonClicked = onRestartButtonClicked; mHideScmTolerance = mCompatUIConfiguration.getHideSizeCompatRestartButtonTolerance(); mDesktopState = desktopState; } @Override Loading Loading @@ -143,7 +148,7 @@ class CompatUIWindowManager extends CompatUIWindowManagerAbstract { boolean canShow) { final boolean prevHasSizeCompat = mHasSizeCompat; mHasSizeCompat = taskInfo.appCompatTaskInfo.isTopActivityInSizeCompat(); if (DesktopModeStatus.canEnterDesktopMode(mContext) if (mDesktopState.canEnterDesktopMode() && DesktopModeFlags.ENABLE_WINDOWING_DYNAMIC_INITIAL_BOUNDS.isTrue()) { // Don't show the SCM button for freeform tasks mHasSizeCompat &= !taskInfo.isFreeform(); Loading
libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java +4 −2 Original line number Diff line number Diff line Loading @@ -297,7 +297,8 @@ public abstract class WMShellBaseModule { @NonNull CompatUIState compatUIState, @NonNull CompatUIComponentIdGenerator componentIdGenerator, @NonNull CompatUIComponentFactory compatUIComponentFactory, CompatUIStatusManager compatUIStatusManager) { CompatUIStatusManager compatUIStatusManager, DesktopState desktopState) { if (!context.getResources().getBoolean(R.bool.config_enableCompatUIController)) { return Optional.empty(); } Loading @@ -322,7 +323,8 @@ public abstract class WMShellBaseModule { compatUIShellCommandHandler.get(), accessibilityManager.get(), compatUIStatusManager, desktopUserRepositories)); desktopUserRepositories, desktopState)); } @WMSingleton Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/compatui/CompatUIControllerTest.java +6 −1 Original line number Diff line number Diff line Loading @@ -62,6 +62,7 @@ import com.android.wm.shell.compatui.api.CompatUIInfo; import com.android.wm.shell.compatui.impl.CompatUIRequests; import com.android.wm.shell.desktopmode.DesktopRepository; import com.android.wm.shell.desktopmode.DesktopUserRepositories; import com.android.wm.shell.shared.desktopmode.FakeDesktopState; import com.android.wm.shell.sysui.ShellController; import com.android.wm.shell.sysui.ShellInit; import com.android.wm.shell.transition.Transitions; Loading Loading @@ -135,12 +136,15 @@ public class CompatUIControllerTest extends ShellTestCase { @NonNull private CompatUIStatusManager mCompatUIStatusManager; @NonNull private FakeDesktopState mDesktopState; @Before public void setUp() { MockitoAnnotations.initMocks(this); mDesktopState = new FakeDesktopState(); doReturn(mMockDisplayLayout).when(mMockDisplayController).getDisplayLayout(anyInt()); doReturn(DISPLAY_ID).when(mMockCompatLayout).getDisplayId(); doReturn(TASK_ID).when(mMockCompatLayout).getTaskId(); Loading @@ -164,7 +168,8 @@ public class CompatUIControllerTest extends ShellTestCase { mMockDisplayController, mMockDisplayInsetsController, mMockImeController, mMockSyncQueue, mMockExecutor, mMockTransitionsLazy, mDockStateReader, mCompatUIConfiguration, mCompatUIShellCommandHandler, mAccessibilityManager, mCompatUIStatusManager, Optional.of(mDesktopUserRepositories)) { mCompatUIStatusManager, Optional.of(mDesktopUserRepositories), mDesktopState) { @Override CompatUIWindowManager createCompatUiWindowManager(Context context, TaskInfo taskInfo, ShellTaskOrganizer.TaskListener taskListener) { Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/compatui/CompatUILayoutTest.java +4 −1 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import com.android.wm.shell.common.DisplayLayout; import com.android.wm.shell.common.SyncTransactionQueue; import com.android.wm.shell.compatui.CompatUIController.CompatUIHintsState; import com.android.wm.shell.compatui.api.CompatUIEvent; import com.android.wm.shell.shared.desktopmode.FakeDesktopState; import junit.framework.Assert; Loading Loading @@ -77,15 +78,17 @@ public class CompatUILayoutTest extends ShellTestCase { private CompatUIWindowManager mWindowManager; private CompatUILayout mLayout; private TaskInfo mTaskInfo; private FakeDesktopState mDesktopState; @Before public void setUp() { MockitoAnnotations.initMocks(this); mDesktopState = new FakeDesktopState(); doReturn(100).when(mCompatUIConfiguration).getHideSizeCompatRestartButtonTolerance(); mTaskInfo = createTaskInfo(/* hasSizeCompat= */ false); mWindowManager = new CompatUIWindowManager(mContext, mTaskInfo, mSyncTransactionQueue, mCallback, mTaskListener, new DisplayLayout(), new CompatUIHintsState(), mCompatUIConfiguration, mOnRestartButtonClicked); mCompatUIConfiguration, mOnRestartButtonClicked, mDesktopState); mLayout = (CompatUILayout) LayoutInflater.from(mContext).inflate(R.layout.compat_ui_layout, null); Loading