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

Commit 4613b0f0 authored by Ats Jenk's avatar Ats Jenk Committed by Android (Google) Code Review
Browse files

Merge "Enable common logic for proto 1 and proto 2" into tm-qpr-dev

parents 4706a5c6 619f7b37
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -692,7 +692,7 @@ public abstract class WMShellBaseModule {
        // Use optional-of-lazy for the dependency that this provider relies on.
        // Lazy ensures that this provider will not be the cause the dependency is created
        // when it will not be returned due to the condition below.
        if (DesktopModeStatus.IS_SUPPORTED) {
        if (DesktopModeStatus.isProto1Enabled()) {
            return desktopModeController.map(Lazy::get);
        }
        return Optional.empty();
@@ -709,7 +709,7 @@ public abstract class WMShellBaseModule {
        // Use optional-of-lazy for the dependency that this provider relies on.
        // Lazy ensures that this provider will not be the cause the dependency is created
        // when it will not be returned due to the condition below.
        if (DesktopModeStatus.IS_SUPPORTED) {
        if (DesktopModeStatus.isAnyEnabled()) {
            return desktopModeTaskRepository.map(Lazy::get);
        }
        return Optional.empty();
+1 −1
Original line number Diff line number Diff line
@@ -100,7 +100,7 @@ public class DesktopModeController implements RemoteCallable<DesktopModeControll
        mDesktopModeTaskRepository = desktopModeTaskRepository;
        mMainExecutor = mainExecutor;
        mSettingsObserver = new SettingsObserver(mContext, mainHandler);
        if (DesktopModeStatus.isSupported()) {
        if (DesktopModeStatus.isProto1Enabled()) {
            shellInit.addInitCallback(this::onInit, this);
        }
    }
+23 −3
Original line number Diff line number Diff line
@@ -33,16 +33,37 @@ public class DesktopModeStatus {
    /**
     * Flag to indicate whether desktop mode is available on the device
     */
    public static final boolean IS_SUPPORTED = SystemProperties.getBoolean(
    private static final boolean IS_SUPPORTED = SystemProperties.getBoolean(
            "persist.wm.debug.desktop_mode", false);

    /**
     * Flag to indicate whether desktop mode proto 2 is available on the device
     */
    private static final boolean IS_PROTO2_ENABLED = SystemProperties.getBoolean(
            "persist.wm.debug.desktop_mode_2", false);

    /**
     * Return {@code true} if desktop mode support is enabled
     */
    public static boolean isSupported() {
    public static boolean isProto1Enabled() {
        return IS_SUPPORTED;
    }

    /**
     * Return {@code true} is desktop windowing proto 2 is enabled
     */
    public static boolean isProto2Enabled() {
        return IS_PROTO2_ENABLED;
    }

    /**
     * Return {@code true} if proto 1 or 2 is enabled.
     * Can be used to guard logic that is common for both prototypes.
     */
    public static boolean isAnyEnabled() {
        return isProto1Enabled() || isProto2Enabled();
    }

    /**
     * Check if desktop mode is active
     *
@@ -61,5 +82,4 @@ public class DesktopModeStatus {
            return false;
        }
    }

}
+5 −5
Original line number Diff line number Diff line
@@ -68,7 +68,7 @@ public class FreeformTaskListener implements ShellTaskOrganizer.TaskListener,

    private void onInit() {
        mShellTaskOrganizer.addListenerForType(this, TASK_LISTENER_TYPE_FREEFORM);
        if (DesktopModeStatus.IS_SUPPORTED) {
        if (DesktopModeStatus.isAnyEnabled()) {
            mShellTaskOrganizer.addFocusListener(this);
        }
    }
@@ -90,7 +90,7 @@ public class FreeformTaskListener implements ShellTaskOrganizer.TaskListener,
            t.apply();
        }

        if (DesktopModeStatus.IS_SUPPORTED) {
        if (DesktopModeStatus.isAnyEnabled()) {
            mDesktopModeTaskRepository.ifPresent(repository -> {
                repository.addOrMoveFreeformTaskToTop(taskInfo.taskId);
                if (taskInfo.isVisible) {
@@ -110,7 +110,7 @@ public class FreeformTaskListener implements ShellTaskOrganizer.TaskListener,
                taskInfo.taskId);
        mTasks.remove(taskInfo.taskId);

        if (DesktopModeStatus.IS_SUPPORTED) {
        if (DesktopModeStatus.isAnyEnabled()) {
            mDesktopModeTaskRepository.ifPresent(repository -> {
                repository.removeFreeformTask(taskInfo.taskId);
                if (repository.removeActiveTask(taskInfo.taskId)) {
@@ -134,7 +134,7 @@ public class FreeformTaskListener implements ShellTaskOrganizer.TaskListener,
                taskInfo.taskId);
        mWindowDecorationViewModel.onTaskInfoChanged(state.mTaskInfo);

        if (DesktopModeStatus.IS_SUPPORTED) {
        if (DesktopModeStatus.isAnyEnabled()) {
            mDesktopModeTaskRepository.ifPresent(repository -> {
                if (taskInfo.isVisible) {
                    if (repository.addActiveTask(taskInfo.taskId)) {
@@ -152,7 +152,7 @@ public class FreeformTaskListener implements ShellTaskOrganizer.TaskListener,
        ProtoLog.v(ShellProtoLogGroup.WM_SHELL_TASK_ORG,
                "Freeform Task Focus Changed: #%d focused=%b",
                taskInfo.taskId, taskInfo.isFocused);
        if (DesktopModeStatus.IS_SUPPORTED && taskInfo.isFocused) {
        if (DesktopModeStatus.isAnyEnabled() && taskInfo.isFocused) {
            mDesktopModeTaskRepository.ifPresent(repository -> {
                repository.addOrMoveFreeformTaskToTop(taskInfo.taskId);
            });
+1 −1
Original line number Diff line number Diff line
@@ -517,7 +517,7 @@ public class CaptionWindowDecorViewModel implements WindowDecorViewModel {

    private boolean shouldShowWindowDecor(RunningTaskInfo taskInfo) {
        if (taskInfo.getWindowingMode() == WINDOWING_MODE_FREEFORM) return true;
        return DesktopModeStatus.IS_SUPPORTED
        return DesktopModeStatus.isAnyEnabled()
                && taskInfo.getActivityType() == ACTIVITY_TYPE_STANDARD
                && mDisplayController.getDisplayContext(taskInfo.displayId)
                .getResources().getConfiguration().smallestScreenWidthDp >= 600;
Loading