diff options
4 files changed, 24 insertions, 26 deletions
diff --git a/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_maximize_menu.xml b/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_maximize_menu.xml index c2aa146d6437..3ebe87dcf505 100644 --- a/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_maximize_menu.xml +++ b/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_maximize_menu.xml @@ -38,11 +38,11 @@ android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" - android:layout_marginStart="4dp" - android:layout_marginEnd="4dp"> + android:gravity="center_horizontal" + android:layout_marginHorizontal="4dp"> <Button - android:layout_width="94dp" + android:layout_width="108dp" android:layout_height="60dp" android:id="@+id/maximize_menu_immersive_toggle_button" style="?android:attr/buttonBarButtonStyle" @@ -75,8 +75,7 @@ android:layout_weight="1" android:orientation="vertical" android:gravity="center_horizontal" - android:layout_marginStart="4dp" - android:layout_marginEnd="4dp"> + android:layout_marginHorizontal="4dp"> <Button android:layout_width="108dp" @@ -112,8 +111,7 @@ android:layout_weight="1" android:orientation="vertical" android:gravity="center_horizontal" - android:layout_marginStart="4dp" - android:layout_marginEnd="4dp"> + android:layout_marginHorizontal="4dp"> <LinearLayout android:id="@+id/maximize_menu_snap_menu_layout" android:layout_width="wrap_content" 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 2ebe67b22c18..fbd7b070b17c 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 @@ -1095,8 +1095,8 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin return Resources.ID_NULL; } - private PointF calculateMaximizeMenuPosition(int menuWidth, int menuHeight) { - final PointF position = new PointF(); + private Point calculateMaximizeMenuPosition(int menuWidth, int menuHeight) { + final Point position = new Point(); final Resources resources = mContext.getResources(); final DisplayLayout displayLayout = mDisplayController.getDisplayLayout(mTaskInfo.displayId); @@ -1111,11 +1111,11 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin final int[] maximizeButtonLocation = new int[2]; maximizeWindowButton.getLocationInWindow(maximizeButtonLocation); - float menuLeft = (mPositionInParent.x + maximizeButtonLocation[0] - ((float) (menuWidth - - maximizeWindowButton.getWidth()) / 2)); - float menuTop = (mPositionInParent.y + captionHeight); - final float menuRight = menuLeft + menuWidth; - final float menuBottom = menuTop + menuHeight; + int menuLeft = (mPositionInParent.x + maximizeButtonLocation[0] - (menuWidth + - maximizeWindowButton.getWidth()) / 2); + int menuTop = (mPositionInParent.y + captionHeight); + final int menuRight = menuLeft + menuWidth; + final int menuBottom = menuTop + menuHeight; // If the menu is out of screen bounds, shift it as needed if (menuLeft < 0) { @@ -1127,7 +1127,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin menuTop = (displayHeight - menuHeight); } - return new PointF(menuLeft, menuTop); + return new Point(menuLeft, menuTop); } boolean isHandleMenuActive() { diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MaximizeMenu.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MaximizeMenu.kt index ad3525af3f94..5d1a7a0cc3a2 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MaximizeMenu.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MaximizeMenu.kt @@ -26,7 +26,7 @@ import android.content.res.ColorStateList import android.content.res.Resources import android.graphics.Paint import android.graphics.PixelFormat -import android.graphics.PointF +import android.graphics.Point import android.graphics.Rect import android.graphics.drawable.Drawable import android.graphics.drawable.GradientDrawable @@ -90,7 +90,7 @@ class MaximizeMenu( private val displayController: DisplayController, private val taskInfo: RunningTaskInfo, private val decorWindowContext: Context, - private val positionSupplier: (Int, Int) -> PointF, + private val positionSupplier: (Int, Int) -> Point, private val transactionSupplier: Supplier<Transaction> = Supplier { Transaction() } ) { private var maximizeMenu: AdditionalViewHostViewContainer? = null @@ -100,14 +100,14 @@ class MaximizeMenu( private val cornerRadius = loadDimensionPixelSize( R.dimen.desktop_mode_maximize_menu_corner_radius ).toFloat() - private lateinit var menuPosition: PointF + private lateinit var menuPosition: Point private val menuPadding = loadDimensionPixelSize(R.dimen.desktop_mode_menu_padding) /** Position the menu relative to the caption's position. */ fun positionMenu(t: Transaction) { menuPosition = positionSupplier(maximizeMenuView?.measureWidth() ?: 0, maximizeMenuView?.measureHeight() ?: 0) - t.setPosition(leash, menuPosition.x, menuPosition.y) + t.setPosition(leash, menuPosition.x.toFloat(), menuPosition.y.toFloat()) } /** Creates and shows the maximize window. */ @@ -208,8 +208,8 @@ class MaximizeMenu( val menuHeight = menuView.measureHeight() menuPosition = positionSupplier(menuWidth, menuHeight) val lp = WindowManager.LayoutParams( - menuWidth.toInt(), - menuHeight.toInt(), + menuWidth, + menuHeight, WindowManager.LayoutParams.TYPE_APPLICATION, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, @@ -222,7 +222,7 @@ class MaximizeMenu( // Bring menu to front when open t.setLayer(leash, TaskConstants.TASK_CHILD_LAYER_FLOATING_MENU) - .setPosition(leash, menuPosition.x, menuPosition.y) + .setPosition(leash, menuPosition.x.toFloat(), menuPosition.y.toFloat()) .setCornerRadius(leash, cornerRadius) .show(leash) maximizeMenu = @@ -1047,7 +1047,7 @@ interface MaximizeMenuFactory { displayController: DisplayController, taskInfo: RunningTaskInfo, decorWindowContext: Context, - positionSupplier: (Int, Int) -> PointF, + positionSupplier: (Int, Int) -> Point, transactionSupplier: Supplier<Transaction> ): MaximizeMenu } @@ -1060,7 +1060,7 @@ object DefaultMaximizeMenuFactory : MaximizeMenuFactory { displayController: DisplayController, taskInfo: RunningTaskInfo, decorWindowContext: Context, - positionSupplier: (Int, Int) -> PointF, + positionSupplier: (Int, Int) -> Point, transactionSupplier: Supplier<Transaction> ): MaximizeMenu { return MaximizeMenu( diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java index 1371b38a579f..878324937f1a 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java @@ -60,7 +60,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.res.TypedArray; -import android.graphics.PointF; +import android.graphics.Point; import android.graphics.Rect; import android.graphics.Region; import android.net.Uri; @@ -1805,7 +1805,7 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { @NonNull DisplayController displayController, @NonNull ActivityManager.RunningTaskInfo taskInfo, @NonNull Context decorWindowContext, - @NonNull Function2<? super Integer,? super Integer,? extends PointF> + @NonNull Function2<? super Integer,? super Integer,? extends Point> positionSupplier, @NonNull Supplier<SurfaceControl.Transaction> transactionSupplier) { return mMaximizeMenu; |