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

Commit c34b1442 authored by Jorge Gil's avatar Jorge Gil Committed by Android (Google) Code Review
Browse files

Merge "Add DesktopModeWindowDecorViewModel to WMShell dump" into main

parents 192076db 7fbdaba4
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -199,6 +199,7 @@ public abstract class WMShellModule {
            @ShellMainThread Handler mainHandler,
            @ShellMainThread Handler mainHandler,
            @ShellMainThread Choreographer mainChoreographer,
            @ShellMainThread Choreographer mainChoreographer,
            ShellInit shellInit,
            ShellInit shellInit,
            ShellCommandHandler shellCommandHandler,
            ShellTaskOrganizer taskOrganizer,
            ShellTaskOrganizer taskOrganizer,
            DisplayController displayController,
            DisplayController displayController,
            ShellController shellController,
            ShellController shellController,
@@ -213,6 +214,7 @@ public abstract class WMShellModule {
                    mainHandler,
                    mainHandler,
                    mainChoreographer,
                    mainChoreographer,
                    shellInit,
                    shellInit,
                    shellCommandHandler,
                    taskOrganizer,
                    taskOrganizer,
                    displayController,
                    displayController,
                    shellController,
                    shellController,
+26 −1
Original line number Original line Diff line number Diff line
@@ -79,11 +79,13 @@ import com.android.wm.shell.recents.RecentsTransitionStateListener;
import com.android.wm.shell.splitscreen.SplitScreen;
import com.android.wm.shell.splitscreen.SplitScreen;
import com.android.wm.shell.splitscreen.SplitScreenController;
import com.android.wm.shell.splitscreen.SplitScreenController;
import com.android.wm.shell.sysui.KeyguardChangeListener;
import com.android.wm.shell.sysui.KeyguardChangeListener;
import com.android.wm.shell.sysui.ShellCommandHandler;
import com.android.wm.shell.sysui.ShellController;
import com.android.wm.shell.sysui.ShellController;
import com.android.wm.shell.sysui.ShellInit;
import com.android.wm.shell.sysui.ShellInit;
import com.android.wm.shell.transition.Transitions;
import com.android.wm.shell.transition.Transitions;
import com.android.wm.shell.windowdecor.DesktopModeWindowDecoration.ExclusionRegionListener;
import com.android.wm.shell.windowdecor.DesktopModeWindowDecoration.ExclusionRegionListener;


import java.io.PrintWriter;
import java.util.Optional;
import java.util.Optional;
import java.util.function.Supplier;
import java.util.function.Supplier;


@@ -97,6 +99,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {


    private final DesktopModeWindowDecoration.Factory mDesktopModeWindowDecorFactory;
    private final DesktopModeWindowDecoration.Factory mDesktopModeWindowDecorFactory;
    private final ActivityTaskManager mActivityTaskManager;
    private final ActivityTaskManager mActivityTaskManager;
    private final ShellCommandHandler mShellCommandHandler;
    private final ShellTaskOrganizer mTaskOrganizer;
    private final ShellTaskOrganizer mTaskOrganizer;
    private final ShellController mShellController;
    private final ShellController mShellController;
    private final Context mContext;
    private final Context mContext;
@@ -134,6 +137,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
            Handler mainHandler,
            Handler mainHandler,
            Choreographer mainChoreographer,
            Choreographer mainChoreographer,
            ShellInit shellInit,
            ShellInit shellInit,
            ShellCommandHandler shellCommandHandler,
            ShellTaskOrganizer taskOrganizer,
            ShellTaskOrganizer taskOrganizer,
            DisplayController displayController,
            DisplayController displayController,
            ShellController shellController,
            ShellController shellController,
@@ -148,6 +152,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
                mainHandler,
                mainHandler,
                mainChoreographer,
                mainChoreographer,
                shellInit,
                shellInit,
                shellCommandHandler,
                taskOrganizer,
                taskOrganizer,
                displayController,
                displayController,
                shellController,
                shellController,
@@ -167,6 +172,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
            Handler mainHandler,
            Handler mainHandler,
            Choreographer mainChoreographer,
            Choreographer mainChoreographer,
            ShellInit shellInit,
            ShellInit shellInit,
            ShellCommandHandler shellCommandHandler,
            ShellTaskOrganizer taskOrganizer,
            ShellTaskOrganizer taskOrganizer,
            DisplayController displayController,
            DisplayController displayController,
            ShellController shellController,
            ShellController shellController,
@@ -189,7 +195,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
        mTransitions = transitions;
        mTransitions = transitions;
        mDesktopTasksController = desktopTasksController;
        mDesktopTasksController = desktopTasksController;
        mRecentsTransitionHandler = recentsTransitionHandler;
        mRecentsTransitionHandler = recentsTransitionHandler;

        mShellCommandHandler = shellCommandHandler;
        mDesktopModeWindowDecorFactory = desktopModeWindowDecorFactory;
        mDesktopModeWindowDecorFactory = desktopModeWindowDecorFactory;
        mInputMonitorFactory = inputMonitorFactory;
        mInputMonitorFactory = inputMonitorFactory;
        mTransactionFactory = transactionFactory;
        mTransactionFactory = transactionFactory;
@@ -206,6 +212,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
                onRecentsTransitionStarted(transition);
                onRecentsTransitionStarted(transition);
            }
            }
        });
        });
        mShellCommandHandler.addDumpCallback(this::dump, this);
    }
    }


    @Override
    @Override
@@ -593,6 +600,15 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
            super.dispose();
            super.dispose();
        }
        }


        @Override
        public String toString() {
            return "EventReceiver"
                    + "{"
                    + "tasksOnDisplay="
                    + mTasksOnDisplay
                    + "}";
        }

        private void incrementTaskNumber() {
        private void incrementTaskNumber() {
            mTasksOnDisplay++;
            mTasksOnDisplay++;
        }
        }
@@ -981,6 +997,15 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
                && mSplitScreenController.isTaskInSplitScreen(taskId);
                && mSplitScreenController.isTaskInSplitScreen(taskId);
    }
    }


    private void dump(PrintWriter pw, String prefix) {
        final String innerPrefix = prefix + "  ";
        pw.println(prefix + "DesktopModeWindowDecorViewModel");
        pw.println(innerPrefix + "DesktopModeStatus=" + DesktopModeStatus.isEnabled());
        pw.println(innerPrefix + "mTransitionDragActive=" + mTransitionDragActive);
        pw.println(innerPrefix + "mEventReceiversByDisplay=" + mEventReceiversByDisplay);
        pw.println(innerPrefix + "mWindowDecorByTaskId=" + mWindowDecorByTaskId);
    }

    private class DragStartListenerImpl
    private class DragStartListenerImpl
            implements DragPositioningCallbackUtility.DragStartListener {
            implements DragPositioningCallbackUtility.DragStartListener {
        @Override
        @Override
+12 −0
Original line number Original line Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.wm.shell.windowdecor;


import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
import static android.app.WindowConfiguration.windowingModeToString;


import android.app.ActivityManager;
import android.app.ActivityManager;
import android.app.WindowConfiguration.WindowingMode;
import android.app.WindowConfiguration.WindowingMode;
@@ -661,6 +662,17 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin
        mRelayoutBlock++;
        mRelayoutBlock++;
    }
    }


    @Override
    public String toString() {
        return "{"
                + "mPositionInParent=" + mPositionInParent + ", "
                + "mRelayoutBlock=" + mRelayoutBlock + ", "
                + "taskId=" + mTaskInfo.taskId + ", "
                + "windowingMode=" + windowingModeToString(mTaskInfo.getWindowingMode()) + ", "
                + "isFocused=" + isFocused()
                + "}";
    }

    static class Factory {
    static class Factory {


        DesktopModeWindowDecoration create(
        DesktopModeWindowDecoration create(
+3 −0
Original line number Original line Diff line number Diff line
@@ -49,6 +49,7 @@ import com.android.wm.shell.desktopmode.DesktopTasksController
import com.android.wm.shell.recents.RecentsTransitionHandler
import com.android.wm.shell.recents.RecentsTransitionHandler
import com.android.wm.shell.recents.RecentsTransitionStateListener
import com.android.wm.shell.recents.RecentsTransitionStateListener
import com.android.wm.shell.sysui.KeyguardChangeListener
import com.android.wm.shell.sysui.KeyguardChangeListener
import com.android.wm.shell.sysui.ShellCommandHandler
import com.android.wm.shell.sysui.ShellController
import com.android.wm.shell.sysui.ShellController
import com.android.wm.shell.sysui.ShellInit
import com.android.wm.shell.sysui.ShellInit
import com.android.wm.shell.transition.Transitions
import com.android.wm.shell.transition.Transitions
@@ -89,6 +90,7 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() {
    @Mock private lateinit var mockShellExecutor: ShellExecutor
    @Mock private lateinit var mockShellExecutor: ShellExecutor
    @Mock private lateinit var mockRootTaskDisplayAreaOrganizer: RootTaskDisplayAreaOrganizer
    @Mock private lateinit var mockRootTaskDisplayAreaOrganizer: RootTaskDisplayAreaOrganizer
    @Mock private lateinit var mockRecentsTransitionHandler: RecentsTransitionHandler
    @Mock private lateinit var mockRecentsTransitionHandler: RecentsTransitionHandler
    @Mock private lateinit var mockShellCommandHandler: ShellCommandHandler


    private val transactionFactory = Supplier<SurfaceControl.Transaction> {
    private val transactionFactory = Supplier<SurfaceControl.Transaction> {
        SurfaceControl.Transaction()
        SurfaceControl.Transaction()
@@ -105,6 +107,7 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() {
                mockMainHandler,
                mockMainHandler,
                mockMainChoreographer,
                mockMainChoreographer,
                shellInit,
                shellInit,
                mockShellCommandHandler,
                mockTaskOrganizer,
                mockTaskOrganizer,
                mockDisplayController,
                mockDisplayController,
                mockShellController,
                mockShellController,