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
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user