Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e3c80820 authored by Pierre Barbier de Reuille's avatar Pierre Barbier de Reuille
Browse files

Stop using DesktopModeStatus in compatui

Bug: 395863348
Test: atest WMShellUnitTests
Flag: EXEMPT (refactor)
Change-Id: I334c37f1e04857300a2d26cb8b2bfa4b860d30ce
parent 61c8fca6
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -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;
@@ -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,
@@ -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;
@@ -239,6 +243,7 @@ public class CompatUIController implements OnDisplaysChangedListener,
                DISAPPEAR_DELAY_MS, flags);
        mCompatUIStatusManager = compatUIStatusManager;
        mDesktopUserRepositories = desktopUserRepositories;
        mDesktopState = desktopState;
        shellInit.addInitCallback(this::onInit, this);
    }

@@ -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(
@@ -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) {
+9 −4
Original line number Diff line number Diff line
@@ -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;

@@ -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,
@@ -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();
@@ -95,6 +99,7 @@ class CompatUIWindowManager extends CompatUIWindowManagerAbstract {
        mCompatUIConfiguration = compatUIConfiguration;
        mOnRestartButtonClicked = onRestartButtonClicked;
        mHideScmTolerance = mCompatUIConfiguration.getHideSizeCompatRestartButtonTolerance();
        mDesktopState = desktopState;
    }

    @Override
@@ -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();
+4 −2
Original line number Diff line number Diff line
@@ -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();
        }
@@ -322,7 +323,8 @@ public abstract class WMShellBaseModule {
                        compatUIShellCommandHandler.get(),
                        accessibilityManager.get(),
                        compatUIStatusManager,
                        desktopUserRepositories));
                        desktopUserRepositories,
                        desktopState));
    }

    @WMSingleton
+6 −1
Original line number Diff line number Diff line
@@ -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;
@@ -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();
@@ -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) {
+4 −1
Original line number Diff line number Diff line
@@ -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;

@@ -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