Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8f26b6f7 authored by Bartosz Chomiński's avatar Bartosz Chomiński Committed by Android (Google) Code Review
Browse files

Merge "Polish maximize menu" into main

parents ec6a0334 fc9c8364
Loading
Loading
Loading
Loading
+5 −7
Original line number Diff line number Diff line
@@ -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"
+8 −8
Original line number Diff line number Diff line
@@ -1096,8 +1096,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);
@@ -1112,11 +1112,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) {
@@ -1128,7 +1128,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin
            menuTop = (displayHeight - menuHeight);
        }

        return new PointF(menuLeft, menuTop);
        return new Point(menuLeft, menuTop);
    }

    boolean isHandleMenuActive() {
+9 −9
Original line number Diff line number Diff line
@@ -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(
+2 −2
Original line number Diff line number Diff line
@@ -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;