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

Commit dab0ff49 authored by Jeff DeCew's avatar Jeff DeCew
Browse files

Do not let QS handle touches where clipped.

Fixes: 196002042
Fixes: 199657455
Bug: 193350347
Test: tap the status bar; unable to trigger any QS tile
Test: drag the QS open by a few mm; unable to trigger any QS tile
Test: open shade, scroll notifications to partially obscure a QS tile; tile is pressable down to the clip, but when clicking below the clip, the default "collapse shade" behavior kicks in.
Test: expand QS with 2 fingers; opens fully expanded QS
Test: fingerprint unlock; expand shade with 1 finger; occasionally opens fully expanded shade: b/193350347
Change-Id: Ie264ee69570f72f5653b423a8649663e3aab1df9
parent 6ea42dcf
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.content.res.Configuration;
import android.graphics.Canvas;
import android.graphics.Path;
import android.graphics.Point;
import android.graphics.PointF;
import android.util.AttributeSet;
import android.view.View;
import android.view.WindowInsets;
@@ -289,6 +290,16 @@ public class QSContainerImpl extends FrameLayout implements Dumpable {
        }
    }

    @Override
    protected boolean isTransformedTouchPointInView(float x, float y,
            View child, PointF outLocalPoint) {
        // Prevent touches outside the clipped area from propagating to a child in that area.
        if (mClippingEnabled && y + getTranslationY() > mFancyClippingTop) {
            return false;
        }
        return super.isTransformedTouchPointInView(x, y, child, outLocalPoint);
    }

    private void updateClippingPath() {
        mFancyClippingPath.reset();
        if (!mClippingEnabled) {