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

Commit dc56cd41 authored by Pierre Barbier de Reuille's avatar Pierre Barbier de Reuille Committed by Android (Google) Code Review
Browse files

Merge "Stop using DesktopModeStatus in compatui" into main

parents be7b9e4e e3c80820
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