Loading core/java/android/window/DesktopModeFlags.java +1 −0 Original line number Diff line number Diff line Loading @@ -94,6 +94,7 @@ public enum DesktopModeFlags { ENABLE_DESKTOP_WINDOWING_MULTI_INSTANCE_FEATURES( Flags::enableDesktopWindowingMultiInstanceFeatures, true), ENABLE_DESKTOP_WINDOWING_PERSISTENCE(Flags::enableDesktopWindowingPersistence, true), ENABLE_DESKTOP_WINDOWING_PIP(Flags::enableDesktopWindowingPip, false), ENABLE_DESKTOP_WINDOWING_QUICK_SWITCH(Flags::enableDesktopWindowingQuickSwitch, true), ENABLE_DESKTOP_WINDOWING_SCVH_CACHE(Flags::enableDesktopWindowingScvhCacheBugFix, true), ENABLE_DESKTOP_WINDOWING_SIZE_CONSTRAINTS(Flags::enableDesktopWindowingSizeConstraints, true), Loading libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipDesktopState.java +11 −5 Original line number Diff line number Diff line Loading @@ -20,9 +20,10 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED; import android.window.DesktopExperienceFlags; import android.window.DesktopModeFlags; import android.window.DisplayAreaInfo; import com.android.window.flags.Flags; import com.android.wm.shell.Flags; import com.android.wm.shell.RootTaskDisplayAreaOrganizer; import com.android.wm.shell.desktopmode.DesktopUserRepositories; import com.android.wm.shell.desktopmode.DragToDesktopTransitionHandler; Loading @@ -48,18 +49,23 @@ public class PipDesktopState { /** * Returns whether PiP in Desktop Windowing is enabled by checking the following: * - Desktop Windowing in PiP flag is enabled * - PiP in Desktop Windowing flag is enabled * - DesktopUserRepositories is injected * - DragToDesktopTransitionHandler is injected */ public boolean isDesktopWindowingPipEnabled() { return Flags.enableDesktopWindowingPip() && mDesktopUserRepositoriesOptional.isPresent() return DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_PIP.isTrue() && mDesktopUserRepositoriesOptional.isPresent() && mDragToDesktopTransitionHandlerOptional.isPresent(); } /** Returns whether PiP in Connected Displays is enabled by checking the flag. */ /** * Returns whether PiP in Connected Displays is enabled by checking the following: * - PiP in Connected Displays flag is enabled * - PiP2 flag is enabled */ public boolean isConnectedDisplaysPipEnabled() { return DesktopExperienceFlags.ENABLE_CONNECTED_DISPLAYS_PIP.isTrue(); return DesktopExperienceFlags.ENABLE_CONNECTED_DISPLAYS_PIP.isTrue() && Flags.enablePip2(); } /** Returns whether the display with the PiP task is in freeform windowing mode. */ Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksTransitionObserver.kt +1 −2 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ import android.window.DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVI import android.window.TransitionInfo import android.window.WindowContainerTransaction import com.android.internal.protolog.ProtoLog import com.android.window.flags.Flags import com.android.wm.shell.ShellTaskOrganizer import com.android.wm.shell.back.BackAnimationController import com.android.wm.shell.desktopmode.DesktopModeTransitionTypes.isExitDesktopModeTransition Loading Loading @@ -107,7 +106,7 @@ class DesktopTasksTransitionObserver( info.changes.forEach { change -> change.taskInfo?.let { taskInfo -> if ( Flags.enableDesktopWindowingPip() && DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_PIP.isTrue && desktopRepository.isTaskMinimizedPipInDisplay( taskInfo.displayId, taskInfo.taskId, Loading libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java +2 −2 Original line number Diff line number Diff line Loading @@ -70,6 +70,7 @@ import android.view.Choreographer; import android.view.Display; import android.view.Surface; import android.view.SurfaceControl; import android.window.DesktopModeFlags; import android.window.DisplayAreaInfo; import android.window.TaskOrganizer; import android.window.TaskSnapshot; Loading @@ -78,7 +79,6 @@ import android.window.WindowContainerTransaction; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.protolog.ProtoLog; import com.android.window.flags.Flags; import com.android.wm.shell.R; import com.android.wm.shell.RootTaskDisplayAreaOrganizer; import com.android.wm.shell.ShellTaskOrganizer; Loading Loading @@ -781,7 +781,7 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener, // TODO(b/377581840): Update this check to include non-minimized cases, e.g. split to PiP etc. private boolean isPipExitingToDesktopMode() { DesktopRepository currentRepo = getCurrentRepo(); return Flags.enableDesktopWindowingPip() && currentRepo != null return DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_PIP.isTrue() && currentRepo != null && (currentRepo.isAnyDeskActive(mTaskInfo.displayId) || isDisplayInFreeform()); } Loading libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipResizeGestureHandler.java +2 −2 Original line number Diff line number Diff line Loading @@ -39,11 +39,11 @@ import android.view.InputEventReceiver; import android.view.InputMonitor; import android.view.MotionEvent; import android.view.ViewConfiguration; import android.window.DesktopModeFlags; import androidx.annotation.VisibleForTesting; import com.android.internal.policy.TaskResizingAlgorithm; import com.android.window.flags.Flags; import com.android.wm.shell.R; import com.android.wm.shell.common.ShellExecutor; import com.android.wm.shell.common.pip.PipBoundsAlgorithm; Loading Loading @@ -183,7 +183,7 @@ public class PipResizeGestureHandler { private void reloadResources() { final Resources res = mContext.getResources(); mDelta = res.getDimensionPixelSize(R.dimen.pip_resize_edge_size); mEnableDragCornerResize = Flags.enableDesktopWindowingPip(); mEnableDragCornerResize = DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_PIP.isTrue(); mTouchSlop = ViewConfiguration.get(mContext).getScaledTouchSlop(); } Loading Loading
core/java/android/window/DesktopModeFlags.java +1 −0 Original line number Diff line number Diff line Loading @@ -94,6 +94,7 @@ public enum DesktopModeFlags { ENABLE_DESKTOP_WINDOWING_MULTI_INSTANCE_FEATURES( Flags::enableDesktopWindowingMultiInstanceFeatures, true), ENABLE_DESKTOP_WINDOWING_PERSISTENCE(Flags::enableDesktopWindowingPersistence, true), ENABLE_DESKTOP_WINDOWING_PIP(Flags::enableDesktopWindowingPip, false), ENABLE_DESKTOP_WINDOWING_QUICK_SWITCH(Flags::enableDesktopWindowingQuickSwitch, true), ENABLE_DESKTOP_WINDOWING_SCVH_CACHE(Flags::enableDesktopWindowingScvhCacheBugFix, true), ENABLE_DESKTOP_WINDOWING_SIZE_CONSTRAINTS(Flags::enableDesktopWindowingSizeConstraints, true), Loading
libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipDesktopState.java +11 −5 Original line number Diff line number Diff line Loading @@ -20,9 +20,10 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED; import android.window.DesktopExperienceFlags; import android.window.DesktopModeFlags; import android.window.DisplayAreaInfo; import com.android.window.flags.Flags; import com.android.wm.shell.Flags; import com.android.wm.shell.RootTaskDisplayAreaOrganizer; import com.android.wm.shell.desktopmode.DesktopUserRepositories; import com.android.wm.shell.desktopmode.DragToDesktopTransitionHandler; Loading @@ -48,18 +49,23 @@ public class PipDesktopState { /** * Returns whether PiP in Desktop Windowing is enabled by checking the following: * - Desktop Windowing in PiP flag is enabled * - PiP in Desktop Windowing flag is enabled * - DesktopUserRepositories is injected * - DragToDesktopTransitionHandler is injected */ public boolean isDesktopWindowingPipEnabled() { return Flags.enableDesktopWindowingPip() && mDesktopUserRepositoriesOptional.isPresent() return DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_PIP.isTrue() && mDesktopUserRepositoriesOptional.isPresent() && mDragToDesktopTransitionHandlerOptional.isPresent(); } /** Returns whether PiP in Connected Displays is enabled by checking the flag. */ /** * Returns whether PiP in Connected Displays is enabled by checking the following: * - PiP in Connected Displays flag is enabled * - PiP2 flag is enabled */ public boolean isConnectedDisplaysPipEnabled() { return DesktopExperienceFlags.ENABLE_CONNECTED_DISPLAYS_PIP.isTrue(); return DesktopExperienceFlags.ENABLE_CONNECTED_DISPLAYS_PIP.isTrue() && Flags.enablePip2(); } /** Returns whether the display with the PiP task is in freeform windowing mode. */ Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksTransitionObserver.kt +1 −2 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ import android.window.DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVI import android.window.TransitionInfo import android.window.WindowContainerTransaction import com.android.internal.protolog.ProtoLog import com.android.window.flags.Flags import com.android.wm.shell.ShellTaskOrganizer import com.android.wm.shell.back.BackAnimationController import com.android.wm.shell.desktopmode.DesktopModeTransitionTypes.isExitDesktopModeTransition Loading Loading @@ -107,7 +106,7 @@ class DesktopTasksTransitionObserver( info.changes.forEach { change -> change.taskInfo?.let { taskInfo -> if ( Flags.enableDesktopWindowingPip() && DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_PIP.isTrue && desktopRepository.isTaskMinimizedPipInDisplay( taskInfo.displayId, taskInfo.taskId, Loading
libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java +2 −2 Original line number Diff line number Diff line Loading @@ -70,6 +70,7 @@ import android.view.Choreographer; import android.view.Display; import android.view.Surface; import android.view.SurfaceControl; import android.window.DesktopModeFlags; import android.window.DisplayAreaInfo; import android.window.TaskOrganizer; import android.window.TaskSnapshot; Loading @@ -78,7 +79,6 @@ import android.window.WindowContainerTransaction; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.protolog.ProtoLog; import com.android.window.flags.Flags; import com.android.wm.shell.R; import com.android.wm.shell.RootTaskDisplayAreaOrganizer; import com.android.wm.shell.ShellTaskOrganizer; Loading Loading @@ -781,7 +781,7 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener, // TODO(b/377581840): Update this check to include non-minimized cases, e.g. split to PiP etc. private boolean isPipExitingToDesktopMode() { DesktopRepository currentRepo = getCurrentRepo(); return Flags.enableDesktopWindowingPip() && currentRepo != null return DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_PIP.isTrue() && currentRepo != null && (currentRepo.isAnyDeskActive(mTaskInfo.displayId) || isDisplayInFreeform()); } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipResizeGestureHandler.java +2 −2 Original line number Diff line number Diff line Loading @@ -39,11 +39,11 @@ import android.view.InputEventReceiver; import android.view.InputMonitor; import android.view.MotionEvent; import android.view.ViewConfiguration; import android.window.DesktopModeFlags; import androidx.annotation.VisibleForTesting; import com.android.internal.policy.TaskResizingAlgorithm; import com.android.window.flags.Flags; import com.android.wm.shell.R; import com.android.wm.shell.common.ShellExecutor; import com.android.wm.shell.common.pip.PipBoundsAlgorithm; Loading Loading @@ -183,7 +183,7 @@ public class PipResizeGestureHandler { private void reloadResources() { final Resources res = mContext.getResources(); mDelta = res.getDimensionPixelSize(R.dimen.pip_resize_edge_size); mEnableDragCornerResize = Flags.enableDesktopWindowingPip(); mEnableDragCornerResize = DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_PIP.isTrue(); mTouchSlop = ViewConfiguration.get(mContext).getScaledTouchSlop(); } Loading