diff options
5 files changed, 26 insertions, 14 deletions
diff --git a/libs/WindowManager/Shell/res/layout/desktop_mode_focused_window_decor.xml b/libs/WindowManager/Shell/res/layout/desktop_mode_focused_window_decor.xml index d93e9ba32105..7638132d6562 100644 --- a/libs/WindowManager/Shell/res/layout/desktop_mode_focused_window_decor.xml +++ b/libs/WindowManager/Shell/res/layout/desktop_mode_focused_window_decor.xml @@ -26,8 +26,8 @@ <ImageButton android:id="@+id/caption_handle" android:layout_width="128dp" - android:layout_height="42dp" - android:paddingVertical="19dp" + android:layout_height="@dimen/desktop_mode_fullscreen_decor_caption_height" + android:paddingVertical="16dp" android:contentDescription="@string/handle_text" android:src="@drawable/decor_handle_dark" tools:tint="@color/desktop_mode_caption_handle_bar_dark" diff --git a/libs/WindowManager/Shell/res/values/dimen.xml b/libs/WindowManager/Shell/res/values/dimen.xml index cba86c8b3dcf..7faf3803b11a 100644 --- a/libs/WindowManager/Shell/res/values/dimen.xml +++ b/libs/WindowManager/Shell/res/values/dimen.xml @@ -401,6 +401,12 @@ <!-- Height of button (32dp) + 2 * margin (5dp each). --> <dimen name="freeform_decor_caption_height">42dp</dimen> + <!-- Height of desktop mode caption for freeform tasks. --> + <dimen name="desktop_mode_freeform_decor_caption_height">42dp</dimen> + + <!-- Height of desktop mode caption for fullscreen tasks. --> + <dimen name="desktop_mode_fullscreen_decor_caption_height">36dp</dimen> + <!-- The width of the maximize menu in desktop mode. --> <dimen name="desktop_mode_maximize_menu_width">287dp</dimen> diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java index c18973132364..82fc0f49c143 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java @@ -18,6 +18,7 @@ package com.android.wm.shell.windowdecor; import android.app.ActivityManager.RunningTaskInfo; import android.app.WindowConfiguration; +import android.app.WindowConfiguration.WindowingMode; import android.content.Context; import android.content.res.ColorStateList; import android.graphics.Color; @@ -114,7 +115,7 @@ public class CaptionWindowDecoration extends WindowDecoration<WindowDecorLinearL mRelayoutParams.reset(); mRelayoutParams.mRunningTaskInfo = taskInfo; mRelayoutParams.mLayoutResId = R.layout.caption_window_decor; - mRelayoutParams.mCaptionHeightId = getCaptionHeightId(); + mRelayoutParams.mCaptionHeightId = getCaptionHeightId(taskInfo.getWindowingMode()); mRelayoutParams.mShadowRadiusId = shadowRadiusID; mRelayoutParams.mApplyStartTransactionOnDraw = applyStartTransactionOnDraw; @@ -227,7 +228,7 @@ public class CaptionWindowDecoration extends WindowDecoration<WindowDecorLinearL } @Override - int getCaptionHeightId() { + int getCaptionHeightId(@WindowingMode int windowingMode) { return R.dimen.freeform_decor_caption_height; } } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java index b81a415d13cd..84ec6b389c4a 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java @@ -17,8 +17,10 @@ package com.android.wm.shell.windowdecor; import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; +import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import android.app.ActivityManager; +import android.app.WindowConfiguration.WindowingMode; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; @@ -204,7 +206,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin mRelayoutParams.reset(); mRelayoutParams.mRunningTaskInfo = taskInfo; mRelayoutParams.mLayoutResId = windowDecorLayoutId; - mRelayoutParams.mCaptionHeightId = getCaptionHeightId(); + mRelayoutParams.mCaptionHeightId = getCaptionHeightId(taskInfo.getWindowingMode()); mRelayoutParams.mShadowRadiusId = shadowRadiusID; mRelayoutParams.mApplyStartTransactionOnDraw = applyStartTransactionOnDraw; // The configuration used to lay out the window decoration. The system context's config is @@ -320,7 +322,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin final int displayWidth = displayLayout.width(); final int displayHeight = displayLayout.height(); - final int captionHeight = getCaptionHeight(); + final int captionHeight = getCaptionHeight(mTaskInfo.getWindowingMode()); final ImageButton maximizeWindowButton = mResult.mRootView.findViewById(R.id.maximize_window); @@ -580,7 +582,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin super.close(); } - private int getDesktopModeWindowDecorLayoutId(int windowingMode) { + private int getDesktopModeWindowDecorLayoutId(@WindowingMode int windowingMode) { return windowingMode == WINDOWING_MODE_FREEFORM ? R.layout.desktop_mode_app_controls_window_decor : R.layout.desktop_mode_focused_window_decor; @@ -609,7 +611,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin exclusionRegion = new Region(); } exclusionRegion.union(new Rect(0, 0, mResult.mWidth, - getCaptionHeight())); + getCaptionHeight(mTaskInfo.getWindowingMode()))); exclusionRegion.translate(mPositionInParent.x, mPositionInParent.y); return exclusionRegion; } @@ -625,12 +627,14 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin } @Override - int getCaptionHeightId() { - return R.dimen.freeform_decor_caption_height; + int getCaptionHeightId(@WindowingMode int windowingMode) { + return windowingMode == WINDOWING_MODE_FULLSCREEN + ? R.dimen.desktop_mode_fullscreen_decor_caption_height + : R.dimen.desktop_mode_freeform_decor_caption_height; } - private int getCaptionHeight() { - return loadDimensionPixelSize(mContext.getResources(), getCaptionHeightId()); + private int getCaptionHeight(@WindowingMode int windowingMode) { + return loadDimensionPixelSize(mContext.getResources(), getCaptionHeightId(windowingMode)); } /** diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java index 2d5ef72d2362..3c853f188e3a 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java @@ -20,6 +20,7 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import android.app.ActivityManager.RunningTaskInfo; +import android.app.WindowConfiguration.WindowingMode; import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; @@ -337,7 +338,7 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer> } } - int getCaptionHeightId() { + int getCaptionHeightId(@WindowingMode int windowingMode) { return Resources.ID_NULL; } @@ -459,7 +460,7 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer> * Adds caption inset source to a WCT */ public void addCaptionInset(WindowContainerTransaction wct) { - final int captionHeightId = getCaptionHeightId(); + final int captionHeightId = getCaptionHeightId(mTaskInfo.getWindowingMode()); if (!ViewRootImpl.CAPTION_ON_SHELL || captionHeightId == Resources.ID_NULL) { return; } |