Loading libs/WindowManager/Shell/res/drawable/desktop_mode_header_ic_minimize.xml 0 → 100644 +26 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- ~ Copyright (C) 2024 The Android Open Source Project ~ ~ Licensed under the Apache License, Version 2.0 (the "License"); ~ you may not use this file except in compliance with the License. ~ You may obtain a copy of the License at ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by applicable law or agreed to in writing, software ~ distributed under the License is distributed on an "AS IS" BASIS, ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ~ See the License for the specific language governing permissions and ~ limitations under the License. --> <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportHeight="24" android:viewportWidth="24"> <path android:fillColor="#FF000000" android:pathData="M6,21V19H18V21Z"/> </vector> libs/WindowManager/Shell/res/layout/desktop_mode_app_header.xml +12 −0 Original line number Diff line number Diff line Loading @@ -76,6 +76,18 @@ android:layout_height="40dp" android:layout_weight="1"/> <ImageButton android:id="@+id/minimize_window" android:layout_width="44dp" android:layout_height="40dp" android:paddingHorizontal="10dp" android:paddingVertical="8dp" android:layout_marginEnd="8dp" android:contentDescription="@string/minimize_button_text" android:src="@drawable/desktop_mode_header_ic_minimize" android:scaleType="centerCrop" android:gravity="end"/> <com.android.wm.shell.windowdecor.MaximizeButtonView android:id="@+id/maximize_button_view" android:layout_width="44dp" Loading libs/WindowManager/Shell/res/values/dimen.xml +12 −0 Original line number Diff line number Diff line Loading @@ -460,6 +460,11 @@ start of this area. --> <dimen name="desktop_mode_customizable_caption_margin_end">152dp</dimen> <!-- The width of the right-aligned region that is taken up by caption elements and extra margins when the caption has the minimize button. This will be merged with the above value once the minimize button becomes default. --> <dimen name="desktop_mode_customizable_caption_with_minimize_button_margin_end">204dp</dimen> <!-- The default minimum allowed window width when resizing a window in desktop mode. --> <dimen name="desktop_mode_minimum_window_width">386dp</dimen> Loading Loading @@ -579,6 +584,13 @@ <!-- The vertical inset to apply to the app chip's ripple drawable --> <dimen name="desktop_mode_header_app_chip_ripple_inset_vertical">4dp</dimen> <!-- The corner radius of the minimize button's ripple drawable --> <dimen name="desktop_mode_header_minimize_ripple_radius">18dp</dimen> <!-- The vertical inset to apply to the minimize button's ripple drawable --> <dimen name="desktop_mode_header_minimize_ripple_inset_vertical">4dp</dimen> <!-- The horizontal inset to apply to the minimize button's ripple drawable --> <dimen name="desktop_mode_header_minimize_ripple_inset_horizontal">6dp</dimen> <!-- The corner radius of the maximize button's ripple drawable --> <dimen name="desktop_mode_header_maximize_ripple_radius">18dp</dimen> <!-- The vertical inset to apply to the maximize button's ripple drawable --> Loading libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +4 −2 Original line number Diff line number Diff line Loading @@ -236,7 +236,8 @@ public abstract class WMShellModule { RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer, InteractionJankMonitor interactionJankMonitor, AppToWebGenericLinksParser genericLinksParser, MultiInstanceHelper multiInstanceHelper) { MultiInstanceHelper multiInstanceHelper, Optional<DesktopTasksLimiter> desktopTasksLimiter) { if (DesktopModeStatus.canEnterDesktopMode(context)) { return new DesktopModeWindowDecorViewModel( context, Loading @@ -257,7 +258,8 @@ public abstract class WMShellModule { rootTaskDisplayAreaOrganizer, interactionJankMonitor, genericLinksParser, multiInstanceHelper); multiInstanceHelper, desktopTasksLimiter); } return new CaptionWindowDecorViewModel( context, Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +14 −0 Original line number Diff line number Diff line Loading @@ -431,6 +431,20 @@ class DesktopTasksController( taskRepository.addClosingTask(displayId, taskId) } /** * Perform clean up of the desktop wallpaper activity if the minimized window task is the last * active task. * * @param wct transaction to modify if the last active task is minimized * @param taskId task id of the window that's being minimized */ fun onDesktopWindowMinimize(wct: WindowContainerTransaction, taskId: Int) { if (taskRepository.isOnlyVisibleNonClosingTask(taskId)) { removeWallpaperActivity(wct) } // Do not call taskRepository.minimizeTask because it will be called by DekstopTasksLimiter. } /** Move a task with given `taskId` to fullscreen */ fun moveToFullscreen(taskId: Int, transitionSource: DesktopModeTransitionSource) { shellTaskOrganizer.getRunningTaskInfo(taskId)?.let { task -> Loading Loading
libs/WindowManager/Shell/res/drawable/desktop_mode_header_ic_minimize.xml 0 → 100644 +26 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- ~ Copyright (C) 2024 The Android Open Source Project ~ ~ Licensed under the Apache License, Version 2.0 (the "License"); ~ you may not use this file except in compliance with the License. ~ You may obtain a copy of the License at ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by applicable law or agreed to in writing, software ~ distributed under the License is distributed on an "AS IS" BASIS, ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ~ See the License for the specific language governing permissions and ~ limitations under the License. --> <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportHeight="24" android:viewportWidth="24"> <path android:fillColor="#FF000000" android:pathData="M6,21V19H18V21Z"/> </vector>
libs/WindowManager/Shell/res/layout/desktop_mode_app_header.xml +12 −0 Original line number Diff line number Diff line Loading @@ -76,6 +76,18 @@ android:layout_height="40dp" android:layout_weight="1"/> <ImageButton android:id="@+id/minimize_window" android:layout_width="44dp" android:layout_height="40dp" android:paddingHorizontal="10dp" android:paddingVertical="8dp" android:layout_marginEnd="8dp" android:contentDescription="@string/minimize_button_text" android:src="@drawable/desktop_mode_header_ic_minimize" android:scaleType="centerCrop" android:gravity="end"/> <com.android.wm.shell.windowdecor.MaximizeButtonView android:id="@+id/maximize_button_view" android:layout_width="44dp" Loading
libs/WindowManager/Shell/res/values/dimen.xml +12 −0 Original line number Diff line number Diff line Loading @@ -460,6 +460,11 @@ start of this area. --> <dimen name="desktop_mode_customizable_caption_margin_end">152dp</dimen> <!-- The width of the right-aligned region that is taken up by caption elements and extra margins when the caption has the minimize button. This will be merged with the above value once the minimize button becomes default. --> <dimen name="desktop_mode_customizable_caption_with_minimize_button_margin_end">204dp</dimen> <!-- The default minimum allowed window width when resizing a window in desktop mode. --> <dimen name="desktop_mode_minimum_window_width">386dp</dimen> Loading Loading @@ -579,6 +584,13 @@ <!-- The vertical inset to apply to the app chip's ripple drawable --> <dimen name="desktop_mode_header_app_chip_ripple_inset_vertical">4dp</dimen> <!-- The corner radius of the minimize button's ripple drawable --> <dimen name="desktop_mode_header_minimize_ripple_radius">18dp</dimen> <!-- The vertical inset to apply to the minimize button's ripple drawable --> <dimen name="desktop_mode_header_minimize_ripple_inset_vertical">4dp</dimen> <!-- The horizontal inset to apply to the minimize button's ripple drawable --> <dimen name="desktop_mode_header_minimize_ripple_inset_horizontal">6dp</dimen> <!-- The corner radius of the maximize button's ripple drawable --> <dimen name="desktop_mode_header_maximize_ripple_radius">18dp</dimen> <!-- The vertical inset to apply to the maximize button's ripple drawable --> Loading
libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +4 −2 Original line number Diff line number Diff line Loading @@ -236,7 +236,8 @@ public abstract class WMShellModule { RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer, InteractionJankMonitor interactionJankMonitor, AppToWebGenericLinksParser genericLinksParser, MultiInstanceHelper multiInstanceHelper) { MultiInstanceHelper multiInstanceHelper, Optional<DesktopTasksLimiter> desktopTasksLimiter) { if (DesktopModeStatus.canEnterDesktopMode(context)) { return new DesktopModeWindowDecorViewModel( context, Loading @@ -257,7 +258,8 @@ public abstract class WMShellModule { rootTaskDisplayAreaOrganizer, interactionJankMonitor, genericLinksParser, multiInstanceHelper); multiInstanceHelper, desktopTasksLimiter); } return new CaptionWindowDecorViewModel( context, Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +14 −0 Original line number Diff line number Diff line Loading @@ -431,6 +431,20 @@ class DesktopTasksController( taskRepository.addClosingTask(displayId, taskId) } /** * Perform clean up of the desktop wallpaper activity if the minimized window task is the last * active task. * * @param wct transaction to modify if the last active task is minimized * @param taskId task id of the window that's being minimized */ fun onDesktopWindowMinimize(wct: WindowContainerTransaction, taskId: Int) { if (taskRepository.isOnlyVisibleNonClosingTask(taskId)) { removeWallpaperActivity(wct) } // Do not call taskRepository.minimizeTask because it will be called by DekstopTasksLimiter. } /** Move a task with given `taskId` to fullscreen */ fun moveToFullscreen(taskId: Int, transitionSource: DesktopModeTransitionSource) { shellTaskOrganizer.getRunningTaskInfo(taskId)?.let { task -> Loading