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

Commit 17bbd976 authored by Michael Kolb's avatar Michael Kolb Committed by Android (Google) Code Review
Browse files

Merge "Add outset to decor view measuring" into klp-modular-dev

parents f425e5ea 5de886a1
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1639,6 +1639,7 @@
             that is, when in portrait. Can be either an absolute dimension
             or a fraction of the screen size in that dimension. -->
        <attr name="windowFixedHeightMajor" format="dimension|fraction" />
        <attr name="windowOutsetBottom" format="dimension" />
    </declare-styleable>

    <!-- The set of attributes that describe a AlertDialog's theme. -->
+14 −1
Original line number Diff line number Diff line
@@ -125,6 +125,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
    TypedValue mFixedWidthMinor;
    TypedValue mFixedHeightMajor;
    TypedValue mFixedHeightMinor;
    TypedValue mOutsetBottom;

    // This is the top-level view of the window, containing the window decor.
    private DecorView mDecor;
@@ -2289,7 +2290,6 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
                    } else {
                        h = 0;
                    }

                    if (h > 0) {
                        final int heightSize = MeasureSpec.getSize(heightMeasureSpec);
                        heightMeasureSpec = MeasureSpec.makeMeasureSpec(
@@ -2298,6 +2298,15 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
                }
            }

            if (mOutsetBottom != null) {
                int mode = MeasureSpec.getMode(heightMeasureSpec);
                if (mode != MeasureSpec.UNSPECIFIED) {
                    int outset = (int) mOutsetBottom.getDimension(metrics);
                    int height = MeasureSpec.getSize(heightMeasureSpec);
                    heightMeasureSpec = MeasureSpec.makeMeasureSpec(height + outset, mode);
                }
            }

            super.onMeasure(widthMeasureSpec, heightMeasureSpec);

            int width = getMeasuredWidth();
@@ -2904,6 +2913,10 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
            a.getValue(com.android.internal.R.styleable.Window_windowFixedHeightMinor,
                    mFixedHeightMinor);
        }
        if (a.hasValue(com.android.internal.R.styleable.Window_windowOutsetBottom)) {
            if (mOutsetBottom == null) mOutsetBottom = new TypedValue();
            a.getValue(com.android.internal.R.styleable.Window_windowOutsetBottom, mOutsetBottom);
        }

        final Context context = getContext();
        final int targetSdk = context.getApplicationInfo().targetSdkVersion;