summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff DeCew <jeffdq@google.com>2021-09-20 11:53:16 -0400
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-12-25 00:34:03 +0000
commit9c99a99ef1d490498b478358a46898b526ae9e81 (patch)
tree5fe82ad5e5900c7766dcbc5a30b7320e6246c001
parent5250b955de3639434318cbb6e006f3086ebd2f27 (diff)
downloadbase-9c99a99ef1d490498b478358a46898b526ae9e81.tar.gz
Do not let QS handle touches where clipped.
Fixes: 196002042 Fixes: 199657455 Bug: 193350347 Bug: 188249360 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 Merged-In: Ie264ee69570f72f5653b423a8649663e3aab1df9 Change-Id: Ie264ee69570f72f5653b423a8649663e3aab1df9 (cherry picked from commit dab0ff498b1a281aac5abc2c986c4471d43ea555) (cherry picked from commit 705574bfc4f24cde47762340e177d5c7424cb399) Merged-In:Ie264ee69570f72f5653b423a8649663e3aab1df9
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java b/packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java
index 59e5eb8d6ac8..6f12e467291a 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java
@@ -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) {