diff options
| author | 2023-08-02 18:30:13 +0000 | |
|---|---|---|
| committer | 2023-08-02 18:30:13 +0000 | |
| commit | f0cec4ca1cd89d4e081eeb6457d7d3f3b2d532a0 (patch) | |
| tree | 27113cf6052d4ac28d0ad12ba9873850cdde8a40 /libs/WindowManager/Shell | |
| parent | ace36fd277dd32926142fc97c417e0f9d260fad2 (diff) | |
| parent | 6b8b93e8450e902eacc0bcd6be57edcfe7a9bed4 (diff) | |
Merge "Add maximize button to caption" into udc-qpr-dev
Diffstat (limited to 'libs/WindowManager/Shell')
5 files changed, 58 insertions, 0 deletions
diff --git a/libs/WindowManager/Shell/res/drawable/decor_desktop_mode_maximize_button_dark.xml b/libs/WindowManager/Shell/res/drawable/decor_desktop_mode_maximize_button_dark.xml new file mode 100644 index 000000000000..02b707568cd0 --- /dev/null +++ b/libs/WindowManager/Shell/res/drawable/decor_desktop_mode_maximize_button_dark.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2023 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="48dp" + android:height="48dp" + android:tint="?attr/colorControlNormal" + android:viewportHeight="960" + android:viewportWidth="960"> + <path + android:fillColor="@android:color/white" + android:pathData="M180,840Q156,840 138,822Q120,804 120,780L120,180Q120,156 138,138Q156,120 180,120L780,120Q804,120 822,138Q840,156 840,180L840,780Q840,804 822,822Q804,840 780,840L180,840ZM180,780L780,780Q780,780 780,780Q780,780 780,780L780,277L180,277L180,780Q180,780 180,780Q180,780 180,780Z" /> +</vector>
\ No newline at end of file diff --git a/libs/WindowManager/Shell/res/layout/desktop_mode_app_controls_window_decor.xml b/libs/WindowManager/Shell/res/layout/desktop_mode_app_controls_window_decor.xml index fb1980a52601..7e0c2071dc86 100644 --- a/libs/WindowManager/Shell/res/layout/desktop_mode_app_controls_window_decor.xml +++ b/libs/WindowManager/Shell/res/layout/desktop_mode_app_controls_window_decor.xml @@ -78,6 +78,19 @@ android:layout_weight="1"/> <ImageButton + android:id="@+id/maximize_window" + android:layout_width="40dp" + android:layout_height="40dp" + android:padding="9dp" + android:layout_marginEnd="8dp" + android:contentDescription="@string/maximize_button_text" + android:src="@drawable/decor_desktop_mode_maximize_button_dark" + android:scaleType="fitCenter" + android:gravity="end" + android:background="@null" + android:tint="@color/desktop_mode_caption_maximize_button_dark"/> + + <ImageButton android:id="@+id/close_window" android:layout_width="40dp" android:layout_height="40dp" diff --git a/libs/WindowManager/Shell/res/values/colors.xml b/libs/WindowManager/Shell/res/values/colors.xml index f2a07857cd4a..b2ec98bc1b15 100644 --- a/libs/WindowManager/Shell/res/values/colors.xml +++ b/libs/WindowManager/Shell/res/values/colors.xml @@ -64,6 +64,8 @@ <color name="desktop_mode_caption_expand_button_dark">#48473A</color> <color name="desktop_mode_caption_close_button_light">#EFF1F2</color> <color name="desktop_mode_caption_close_button_dark">#1C1C17</color> + <color name="desktop_mode_caption_maximize_button_light">#EFF1F2</color> + <color name="desktop_mode_caption_maximize_button_dark">#1C1C17</color> <color name="desktop_mode_caption_app_name_light">#EFF1F2</color> <color name="desktop_mode_caption_app_name_dark">#1C1C17</color> <color name="desktop_mode_caption_menu_text_color">#191C1D</color> diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java index 4cc755bdf632..2b19da2498a6 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java @@ -374,6 +374,11 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { mDesktopTasksController.ifPresent(c -> c.moveToNextDisplay(mTaskId)); decoration.closeHandleMenu(); } + } else if (id == R.id.maximize_window) { + final RunningTaskInfo taskInfo = decoration.mTaskInfo; + mDesktopTasksController.ifPresent(c -> c.toggleDesktopTaskSize( + taskInfo, decoration)); + decoration.closeHandleMenu(); } } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeAppControlsWindowDecorationViewHolder.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeAppControlsWindowDecorationViewHolder.kt index b67acd5c15bb..672e57aab5ad 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeAppControlsWindowDecorationViewHolder.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeAppControlsWindowDecorationViewHolder.kt @@ -28,6 +28,7 @@ internal class DesktopModeAppControlsWindowDecorationViewHolder( private val openMenuButton: View = rootView.findViewById(R.id.open_menu_button) private val closeWindowButton: ImageButton = rootView.findViewById(R.id.close_window) private val expandMenuButton: ImageButton = rootView.findViewById(R.id.expand_menu_button) + private val maximizeWindowButton: ImageButton = rootView.findViewById(R.id.maximize_window) private val appNameTextView: TextView = rootView.findViewById(R.id.application_name) private val appIconImageView: ImageView = rootView.findViewById(R.id.application_icon) @@ -37,6 +38,7 @@ internal class DesktopModeAppControlsWindowDecorationViewHolder( openMenuButton.setOnClickListener(onCaptionButtonClickListener) openMenuButton.setOnTouchListener(onCaptionTouchListener) closeWindowButton.setOnClickListener(onCaptionButtonClickListener) + maximizeWindowButton.setOnClickListener(onCaptionButtonClickListener) closeWindowButton.setOnTouchListener(onCaptionTouchListener) appNameTextView.text = appName appIconImageView.setImageDrawable(appIcon) @@ -49,6 +51,8 @@ internal class DesktopModeAppControlsWindowDecorationViewHolder( closeWindowButton.imageTintList = ColorStateList.valueOf( getCaptionCloseButtonColor(taskInfo)) + maximizeWindowButton.imageTintList = ColorStateList.valueOf( + getCaptionMaximizeButtonColor(taskInfo)) expandMenuButton.imageTintList = ColorStateList.valueOf( getCaptionExpandButtonColor(taskInfo)) appNameTextView.setTextColor(getCaptionAppNameTextColor(taskInfo)) @@ -70,6 +74,14 @@ internal class DesktopModeAppControlsWindowDecorationViewHolder( } } + private fun getCaptionMaximizeButtonColor(taskInfo: RunningTaskInfo): Int { + return if (shouldUseLightCaptionColors(taskInfo)) { + context.getColor(R.color.desktop_mode_caption_maximize_button_light) + } else { + context.getColor(R.color.desktop_mode_caption_maximize_button_dark) + } + } + private fun getCaptionExpandButtonColor(taskInfo: RunningTaskInfo): Int { return if (shouldUseLightCaptionColors(taskInfo)) { context.getColor(R.color.desktop_mode_caption_expand_button_light) |