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

Commit 1b65af27 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix NotificaitonPanelView x-axis shift with IME" into pi-dev

parents 0e52664b 7749c9a5
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -178,11 +178,7 @@ public class HeadsUpStatusBarView extends AlphaOptimizedLinearLayout {
     * @param translationX how to translate the horizontal position
     */
    public void setPanelTranslation(float translationX) {
        if (isLayoutRtl()) {
            setTranslationX(translationX + mCutOutInset);
        } else {
            setTranslationX(translationX - mCutOutInset);
        }
        setTranslationX(translationX);
        updateDrawingRect();
    }

+10 −2
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.systemui.statusbar.phone;

import android.graphics.Point;
import android.graphics.Rect;
import android.view.DisplayCutout;
import android.view.View;
import android.view.WindowInsets;

@@ -159,8 +160,15 @@ public class HeadsUpAppearanceController implements OnHeadsUpChangedListener,
        }

        WindowInsets windowInset = mStackScroller.getRootWindowInsets();
        return windowInset.getSystemWindowInsetLeft() + mStackScroller.getRight()
                + windowInset.getSystemWindowInsetRight() - realDisplaySize;
        DisplayCutout cutout = (windowInset != null) ? windowInset.getDisplayCutout() : null;
        int sysWinLeft = (windowInset != null) ? windowInset.getStableInsetLeft() : 0;
        int sysWinRight = (windowInset != null) ? windowInset.getStableInsetRight() : 0;
        int cutoutLeft = (cutout != null) ? cutout.getSafeInsetLeft() : 0;
        int cutoutRight = (cutout != null) ? cutout.getSafeInsetRight() : 0;
        int leftInset = Math.max(sysWinLeft, cutoutLeft);
        int rightInset = Math.max(sysWinRight, cutoutRight);

        return leftInset + mStackScroller.getRight() + rightInset - realDisplaySize;
    }

    public void updatePanelTranslation() {
+13 −18
Original line number Diff line number Diff line
@@ -331,16 +331,13 @@ public class PhoneStatusBarView extends PanelBar {
        // or letterboxing from the right or left sides.

        FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) getLayoutParams();
        if (mDisplayCutout == null) {
        if (mDisplayCutout == null || mDisplayCutout.isEmpty()
                || mLastOrientation != ORIENTATION_PORTRAIT || cornerCutoutMargins == null) {
            lp.leftMargin = 0;
            lp.rightMargin = 0;
            return;
        }

        lp.leftMargin = mDisplayCutout.getSafeInsetLeft();
        lp.rightMargin = mDisplayCutout.getSafeInsetRight();

        if (cornerCutoutMargins != null) {
        lp.leftMargin = Math.max(lp.leftMargin, cornerCutoutMargins.first);
        lp.rightMargin = Math.max(lp.rightMargin, cornerCutoutMargins.second);

@@ -354,8 +351,6 @@ public class PhoneStatusBarView extends PanelBar {
        if (lp.rightMargin <= rightInset) {
            lp.rightMargin = 0;
        }

        }
    }

    public static Pair<Integer, Integer> cornerCutoutMargins(DisplayCutout cutout,
+15 −3
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ import android.os.IBinder;
import android.os.SystemClock;
import android.util.AttributeSet;
import android.view.ActionMode;
import android.view.DisplayCutout;
import android.view.InputDevice;
import android.view.InputQueue;
import android.view.KeyEvent;
@@ -118,10 +119,21 @@ public class StatusBarWindowView extends FrameLayout {
            boolean paddingChanged = insets.top != getPaddingTop()
                    || insets.bottom != getPaddingBottom();

            int rightCutout = 0;
            int leftCutout = 0;
            DisplayCutout displayCutout = getRootWindowInsets().getDisplayCutout();
            if (displayCutout != null) {
                leftCutout = displayCutout.getSafeInsetLeft();
                rightCutout = displayCutout.getSafeInsetRight();
            }

            int targetLeft = Math.max(insets.left, leftCutout);
            int targetRight = Math.max(insets.right, rightCutout);

            // Super-special right inset handling, because scrims and backdrop need to ignore it.
            if (insets.right != mRightInset || insets.left != mLeftInset) {
                mRightInset = insets.right;
                mLeftInset = insets.left;
            if (targetRight != mRightInset || targetLeft != mLeftInset) {
                mRightInset = targetRight;
                mLeftInset = targetLeft;
                applyMargins();
            }
            // Drop top inset, and pass through bottom inset.