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

Commit c1bbf107 authored by Evan Laird's avatar Evan Laird Committed by android-build-merger
Browse files

Merge "Use a Region when calculating TouchableRegion for cutouts" into qt-dev...

Merge "Use a Region when calculating TouchableRegion for cutouts" into qt-dev am: 6c22dff6 am: 04b33a93
am: e85f9ee3

Change-Id: If7390095c4fb5785fe80ed2fa0d4c758775ad21c
parents 0a9e04f3 e85f9ee3
Loading
Loading
Loading
Loading
+7 −3
Original line number Original line Diff line number Diff line
@@ -22,6 +22,7 @@ import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.Resources;
import android.graphics.Rect;
import android.graphics.Rect;
import android.graphics.Region;
import android.util.Log;
import android.util.Log;
import android.util.Pools;
import android.util.Pools;
import android.view.DisplayCutout;
import android.view.DisplayCutout;
@@ -88,7 +89,7 @@ public class HeadsUpManagerPhone extends HeadsUpManager implements Dumpable,
    private int[] mTmpTwoArray = new int[2];
    private int[] mTmpTwoArray = new int[2];
    private boolean mHeadsUpGoingAway;
    private boolean mHeadsUpGoingAway;
    private int mStatusBarState;
    private int mStatusBarState;
    private Rect mTouchableRegion = new Rect();
    private Region mTouchableRegion = new Region();


    private AnimationStateHandler mAnimationStateHandler;
    private AnimationStateHandler mAnimationStateHandler;


@@ -365,10 +366,11 @@ public class HeadsUpManagerPhone extends HeadsUpManager implements Dumpable,
        info.touchableRegion.set(calculateTouchableRegion());
        info.touchableRegion.set(calculateTouchableRegion());
    }
    }


    public Rect calculateTouchableRegion() {
    public Region calculateTouchableRegion() {
        if (!hasPinnedHeadsUp()) {
        if (!hasPinnedHeadsUp()) {
            mTouchableRegion.set(0, 0, mStatusBarWindowView.getWidth(), mStatusBarHeight);
            mTouchableRegion.set(0, 0, mStatusBarWindowView.getWidth(), mStatusBarHeight);
            updateRegionForNotch(mTouchableRegion);
            updateRegionForNotch(mTouchableRegion);

        } else {
        } else {
            NotificationEntry topEntry = getTopEntry();
            NotificationEntry topEntry = getTopEntry();
            if (topEntry.isChildInGroup()) {
            if (topEntry.isChildInGroup()) {
@@ -388,7 +390,7 @@ public class HeadsUpManagerPhone extends HeadsUpManager implements Dumpable,
        return mTouchableRegion;
        return mTouchableRegion;
    }
    }


    private void updateRegionForNotch(Rect region) {
    private void updateRegionForNotch(Region region) {
        DisplayCutout cutout = mStatusBarWindowView.getRootWindowInsets().getDisplayCutout();
        DisplayCutout cutout = mStatusBarWindowView.getRootWindowInsets().getDisplayCutout();
        if (cutout == null) {
        if (cutout == null) {
            return;
            return;
@@ -460,6 +462,8 @@ public class HeadsUpManagerPhone extends HeadsUpManager implements Dumpable,
        super.dumpInternal(fd, pw, args);
        super.dumpInternal(fd, pw, args);
        pw.print("  mBarState=");
        pw.print("  mBarState=");
        pw.println(mStatusBarState);
        pw.println(mStatusBarState);
        pw.print("  mTouchableRegion=");
        pw.println(mTouchableRegion);
    }
    }


    ///////////////////////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////////////////
+4 −2
Original line number Original line Diff line number Diff line
@@ -38,6 +38,7 @@ import android.graphics.PointF;
import android.graphics.PorterDuff;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.Rect;
import android.graphics.Region;
import android.os.PowerManager;
import android.os.PowerManager;
import android.util.AttributeSet;
import android.util.AttributeSet;
import android.util.Log;
import android.util.Log;
@@ -676,9 +677,10 @@ public class NotificationPanelView extends PanelView implements


    private Rect calculateGestureExclusionRect() {
    private Rect calculateGestureExclusionRect() {
        Rect exclusionRect = null;
        Rect exclusionRect = null;
        if (isFullyCollapsed()) {
        Region touchableRegion = mHeadsUpManager.calculateTouchableRegion();
        if (isFullyCollapsed() && touchableRegion != null) {
            // Note: The heads up manager also calculates the non-pinned touchable region
            // Note: The heads up manager also calculates the non-pinned touchable region
            exclusionRect = mHeadsUpManager.calculateTouchableRegion();
            exclusionRect = touchableRegion.getBounds();
        }
        }
        return exclusionRect != null
        return exclusionRect != null
                ? exclusionRect
                ? exclusionRect