summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java44
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/ShadeLogger.kt38
2 files changed, 68 insertions, 14 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
index 6a192161fa93..e33248cc5a2b 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
@@ -2141,7 +2141,6 @@ public final class NotificationPanelViewController implements Dumpable {
if ((h > touchSlop || (h < -touchSlop && mQsExpanded))
&& Math.abs(h) > Math.abs(x - mInitialTouchX)
&& shouldQuickSettingsIntercept(mInitialTouchX, mInitialTouchY, h)) {
- debugLog("onQsIntercept - start tracking expansion");
mView.getParent().requestDisallowInterceptTouchEvent(true);
mShadeLog.onQsInterceptMoveQsTrackingEnabled(h);
mQsTracking = true;
@@ -2352,7 +2351,7 @@ public final class NotificationPanelViewController implements Dumpable {
if (!mSplitShadeEnabled
&& computeQsExpansionFraction() <= 0.01 && getExpandedFraction() < 1.0) {
mShadeLog.logMotionEvent(event,
- "handleQsTouch: QQS touched while shade collapsing");
+ "handleQsTouch: QQS touched while shade collapsing, QS tracking disabled");
mQsTracking = false;
}
if (!mQsExpandImmediate && mQsTracking) {
@@ -5796,12 +5795,9 @@ public final class NotificationPanelViewController implements Dumpable {
/** @see ViewGroup#onInterceptTouchEvent(MotionEvent) */
public boolean onInterceptTouchEvent(MotionEvent event) {
mShadeLog.logMotionEvent(event, "NPVC onInterceptTouchEvent");
- if (SPEW_LOGCAT) {
- Log.v(TAG,
- "NPVC onInterceptTouchEvent (" + event.getId() + "): (" + event.getX()
- + "," + event.getY() + ")");
- }
if (mQs.disallowPanelTouches()) {
+ mShadeLog.logMotionEvent(event,
+ "NPVC not intercepting touch, panel touches disallowed");
return false;
}
initDownStates(event);
@@ -5834,8 +5830,15 @@ public final class NotificationPanelViewController implements Dumpable {
+ "QsIntercept");
return true;
}
- if (mInstantExpanding || !mNotificationsDragEnabled || mTouchDisabled || (mMotionAborted
- && event.getActionMasked() != MotionEvent.ACTION_DOWN)) {
+
+ if (mInstantExpanding || !mNotificationsDragEnabled || mTouchDisabled) {
+ mShadeLog.logNotInterceptingTouchInstantExpanding(mInstantExpanding,
+ !mNotificationsDragEnabled, mTouchDisabled);
+ return false;
+ }
+ if (mMotionAborted && event.getActionMasked() != MotionEvent.ACTION_DOWN) {
+ mShadeLog.logMotionEventStatusBarState(event, mStatusBarStateController.getState(),
+ "NPVC MotionEvent not intercepted: non-down action, motion was aborted");
return false;
}
@@ -5890,6 +5893,9 @@ public final class NotificationPanelViewController implements Dumpable {
}
break;
case MotionEvent.ACTION_POINTER_DOWN:
+ mShadeLog.logMotionEventStatusBarState(event,
+ mStatusBarStateController.getState(),
+ "onInterceptTouchEvent: pointer down action");
if (mStatusBarStateController.getState() == StatusBarState.KEYGUARD) {
mMotionAborted = true;
mVelocityTracker.clear();
@@ -5931,7 +5937,8 @@ public final class NotificationPanelViewController implements Dumpable {
// events are received in this handler with identical downTimes. Until the
// source of the issue can be located, detect this case and ignore.
// see b/193350347
- Log.w(TAG, "Duplicate down event detected... ignoring");
+ mShadeLog.logMotionEvent(event,
+ "onTouch: duplicate down event detected... ignoring");
return true;
}
mLastTouchDownTime = event.getDownTime();
@@ -5939,6 +5946,8 @@ public final class NotificationPanelViewController implements Dumpable {
if (mQsFullyExpanded && mQs != null && mQs.disallowPanelTouches()) {
+ mShadeLog.logMotionEvent(event,
+ "onTouch: ignore touch, panel touches disallowed and qs fully expanded");
return false;
}
@@ -5946,6 +5955,8 @@ public final class NotificationPanelViewController implements Dumpable {
// otherwise user would be able to pull down QS or expand the shade.
if (mCentralSurfaces.isBouncerShowingScrimmed()
|| mCentralSurfaces.isBouncerShowingOverDream()) {
+ mShadeLog.logMotionEvent(event,
+ "onTouch: ignore touch, bouncer scrimmed or showing over dream");
return false;
}
@@ -6003,15 +6014,17 @@ public final class NotificationPanelViewController implements Dumpable {
private boolean handleTouch(MotionEvent event) {
if (mInstantExpanding) {
- mShadeLog.logMotionEvent(event, "onTouch: touch ignored due to instant expanding");
+ mShadeLog.logMotionEvent(event,
+ "handleTouch: touch ignored due to instant expanding");
return false;
}
if (mTouchDisabled && event.getActionMasked() != MotionEvent.ACTION_CANCEL) {
- mShadeLog.logMotionEvent(event, "onTouch: non-cancel action, touch disabled");
+ mShadeLog.logMotionEvent(event, "handleTouch: non-cancel action, touch disabled");
return false;
}
if (mMotionAborted && event.getActionMasked() != MotionEvent.ACTION_DOWN) {
- mShadeLog.logMotionEvent(event, "onTouch: non-down action, motion was aborted");
+ mShadeLog.logMotionEventStatusBarState(event, mStatusBarStateController.getState(),
+ "handleTouch: non-down action, motion was aborted");
return false;
}
@@ -6021,7 +6034,7 @@ public final class NotificationPanelViewController implements Dumpable {
// Turn off tracking if it's on or the shade can get stuck in the down position.
onTrackingStopped(true /* expand */);
}
- mShadeLog.logMotionEvent(event, "onTouch: drag not enabled");
+ mShadeLog.logMotionEvent(event, "handleTouch: drag not enabled");
return false;
}
@@ -6094,6 +6107,9 @@ public final class NotificationPanelViewController implements Dumpable {
}
break;
case MotionEvent.ACTION_POINTER_DOWN:
+ mShadeLog.logMotionEventStatusBarState(event,
+ mStatusBarStateController.getState(),
+ "handleTouch: pointer down action");
if (mStatusBarStateController.getState() == StatusBarState.KEYGUARD) {
mMotionAborted = true;
endMotionEvent(event, x, y, true /* forceCancel */);
diff --git a/packages/SystemUI/src/com/android/systemui/shade/ShadeLogger.kt b/packages/SystemUI/src/com/android/systemui/shade/ShadeLogger.kt
index 40ed40a767e5..0b59af3435ca 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/ShadeLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/shade/ShadeLogger.kt
@@ -98,6 +98,29 @@ class ShadeLogger @Inject constructor(@ShadeLog private val buffer: LogBuffer) {
)
}
+ fun logMotionEventStatusBarState(event: MotionEvent, statusBarState: Int, message: String) {
+ log(
+ LogLevel.VERBOSE,
+ {
+ str1 = message
+ long1 = event.eventTime
+ long2 = event.downTime
+ int1 = event.action
+ int2 = statusBarState
+ double1 = event.y.toDouble()
+ },
+ {
+ "$str1\neventTime=$long1,downTime=$long2,y=$double1,action=$int1," +
+ "statusBarState=${when (int2) {
+ 0 -> "SHADE"
+ 1 -> "KEYGUARD"
+ 2 -> "SHADE_LOCKED"
+ else -> "UNKNOWN:$int2"
+ }}"
+ }
+ )
+ }
+
fun logExpansionChanged(
message: String,
fraction: Float,
@@ -164,4 +187,19 @@ class ShadeLogger @Inject constructor(@ShadeLog private val buffer: LogBuffer) {
"tap to be detected: proximityIsNotNear: $bool1, isNotFalseTap: $bool2"
})
}
+
+ fun logNotInterceptingTouchInstantExpanding(
+ instantExpanding: Boolean,
+ notificationsDragEnabled: Boolean,
+ touchDisabled: Boolean
+ ) {
+ log(LogLevel.VERBOSE, {
+ bool1 = instantExpanding
+ bool2 = notificationsDragEnabled
+ bool3 = touchDisabled
+ }, {
+ "NPVC not intercepting touch, instantExpanding: $bool1, " +
+ "!notificationsDragEnabled: $bool2, touchDisabled: $bool3"
+ })
+ }
}