Merge "Added logging for setting mMotionAborted in NPVC" into tm-qpr-dev

This commit is contained in:
Shawn Lee
2022-12-12 17:20:32 +00:00
committed by Android (Google) Code Review
2 changed files with 68 additions and 14 deletions

View File

@@ -2141,7 +2141,6 @@ public final class NotificationPanelViewController implements Dumpable {
if ((h > touchSlop || (h < -touchSlop && mQsExpanded)) if ((h > touchSlop || (h < -touchSlop && mQsExpanded))
&& Math.abs(h) > Math.abs(x - mInitialTouchX) && Math.abs(h) > Math.abs(x - mInitialTouchX)
&& shouldQuickSettingsIntercept(mInitialTouchX, mInitialTouchY, h)) { && shouldQuickSettingsIntercept(mInitialTouchX, mInitialTouchY, h)) {
debugLog("onQsIntercept - start tracking expansion");
mView.getParent().requestDisallowInterceptTouchEvent(true); mView.getParent().requestDisallowInterceptTouchEvent(true);
mShadeLog.onQsInterceptMoveQsTrackingEnabled(h); mShadeLog.onQsInterceptMoveQsTrackingEnabled(h);
mQsTracking = true; mQsTracking = true;
@@ -2352,7 +2351,7 @@ public final class NotificationPanelViewController implements Dumpable {
if (!mSplitShadeEnabled if (!mSplitShadeEnabled
&& computeQsExpansionFraction() <= 0.01 && getExpandedFraction() < 1.0) { && computeQsExpansionFraction() <= 0.01 && getExpandedFraction() < 1.0) {
mShadeLog.logMotionEvent(event, mShadeLog.logMotionEvent(event,
"handleQsTouch: QQS touched while shade collapsing"); "handleQsTouch: QQS touched while shade collapsing, QS tracking disabled");
mQsTracking = false; mQsTracking = false;
} }
if (!mQsExpandImmediate && mQsTracking) { if (!mQsExpandImmediate && mQsTracking) {
@@ -5796,12 +5795,9 @@ public final class NotificationPanelViewController implements Dumpable {
/** @see ViewGroup#onInterceptTouchEvent(MotionEvent) */ /** @see ViewGroup#onInterceptTouchEvent(MotionEvent) */
public boolean onInterceptTouchEvent(MotionEvent event) { public boolean onInterceptTouchEvent(MotionEvent event) {
mShadeLog.logMotionEvent(event, "NPVC onInterceptTouchEvent"); mShadeLog.logMotionEvent(event, "NPVC onInterceptTouchEvent");
if (SPEW_LOGCAT) {
Log.v(TAG,
"NPVC onInterceptTouchEvent (" + event.getId() + "): (" + event.getX()
+ "," + event.getY() + ")");
}
if (mQs.disallowPanelTouches()) { if (mQs.disallowPanelTouches()) {
mShadeLog.logMotionEvent(event,
"NPVC not intercepting touch, panel touches disallowed");
return false; return false;
} }
initDownStates(event); initDownStates(event);
@@ -5834,8 +5830,15 @@ public final class NotificationPanelViewController implements Dumpable {
+ "QsIntercept"); + "QsIntercept");
return true; 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; return false;
} }
@@ -5890,6 +5893,9 @@ public final class NotificationPanelViewController implements Dumpable {
} }
break; break;
case MotionEvent.ACTION_POINTER_DOWN: case MotionEvent.ACTION_POINTER_DOWN:
mShadeLog.logMotionEventStatusBarState(event,
mStatusBarStateController.getState(),
"onInterceptTouchEvent: pointer down action");
if (mStatusBarStateController.getState() == StatusBarState.KEYGUARD) { if (mStatusBarStateController.getState() == StatusBarState.KEYGUARD) {
mMotionAborted = true; mMotionAborted = true;
mVelocityTracker.clear(); mVelocityTracker.clear();
@@ -5931,7 +5937,8 @@ public final class NotificationPanelViewController implements Dumpable {
// events are received in this handler with identical downTimes. Until the // events are received in this handler with identical downTimes. Until the
// source of the issue can be located, detect this case and ignore. // source of the issue can be located, detect this case and ignore.
// see b/193350347 // see b/193350347
Log.w(TAG, "Duplicate down event detected... ignoring"); mShadeLog.logMotionEvent(event,
"onTouch: duplicate down event detected... ignoring");
return true; return true;
} }
mLastTouchDownTime = event.getDownTime(); mLastTouchDownTime = event.getDownTime();
@@ -5939,6 +5946,8 @@ public final class NotificationPanelViewController implements Dumpable {
if (mQsFullyExpanded && mQs != null && mQs.disallowPanelTouches()) { if (mQsFullyExpanded && mQs != null && mQs.disallowPanelTouches()) {
mShadeLog.logMotionEvent(event,
"onTouch: ignore touch, panel touches disallowed and qs fully expanded");
return false; 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. // otherwise user would be able to pull down QS or expand the shade.
if (mCentralSurfaces.isBouncerShowingScrimmed() if (mCentralSurfaces.isBouncerShowingScrimmed()
|| mCentralSurfaces.isBouncerShowingOverDream()) { || mCentralSurfaces.isBouncerShowingOverDream()) {
mShadeLog.logMotionEvent(event,
"onTouch: ignore touch, bouncer scrimmed or showing over dream");
return false; return false;
} }
@@ -6003,15 +6014,17 @@ public final class NotificationPanelViewController implements Dumpable {
private boolean handleTouch(MotionEvent event) { private boolean handleTouch(MotionEvent event) {
if (mInstantExpanding) { if (mInstantExpanding) {
mShadeLog.logMotionEvent(event, "onTouch: touch ignored due to instant expanding"); mShadeLog.logMotionEvent(event,
"handleTouch: touch ignored due to instant expanding");
return false; return false;
} }
if (mTouchDisabled && event.getActionMasked() != MotionEvent.ACTION_CANCEL) { 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; return false;
} }
if (mMotionAborted && event.getActionMasked() != MotionEvent.ACTION_DOWN) { 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; 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. // Turn off tracking if it's on or the shade can get stuck in the down position.
onTrackingStopped(true /* expand */); onTrackingStopped(true /* expand */);
} }
mShadeLog.logMotionEvent(event, "onTouch: drag not enabled"); mShadeLog.logMotionEvent(event, "handleTouch: drag not enabled");
return false; return false;
} }
@@ -6094,6 +6107,9 @@ public final class NotificationPanelViewController implements Dumpable {
} }
break; break;
case MotionEvent.ACTION_POINTER_DOWN: case MotionEvent.ACTION_POINTER_DOWN:
mShadeLog.logMotionEventStatusBarState(event,
mStatusBarStateController.getState(),
"handleTouch: pointer down action");
if (mStatusBarStateController.getState() == StatusBarState.KEYGUARD) { if (mStatusBarStateController.getState() == StatusBarState.KEYGUARD) {
mMotionAborted = true; mMotionAborted = true;
endMotionEvent(event, x, y, true /* forceCancel */); endMotionEvent(event, x, y, true /* forceCancel */);

View File

@@ -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( fun logExpansionChanged(
message: String, message: String,
fraction: Float, fraction: Float,
@@ -164,4 +187,19 @@ class ShadeLogger @Inject constructor(@ShadeLog private val buffer: LogBuffer) {
"tap to be detected: proximityIsNotNear: $bool1, isNotFalseTap: $bool2" "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"
})
}
} }