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

Commit b9b3c7e1 authored by Justin Weir's avatar Justin Weir
Browse files

Add additional logging for b/227115380

We've narrowed down the behavior of the bug to the if statement in
the move handling in onQsIntercept, but we need more logging to find
out why that check isn't activating.

Bug: 227115380
Test: atest and manual
Change-Id: I7b6b2e276b45a724d4a23007b6e07ed97bcf049b
parent ed10f73b
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -1903,7 +1903,8 @@ public final class NotificationPanelViewController extends PanelViewController {
                    mShadeLog.logMotionEvent(event,
                            "onQsIntercept: move ignored because qs tracking disabled");
                }
                if ((h > getTouchSlop(event) || (h < -getTouchSlop(event) && mQsExpanded))
                float touchSlop = getTouchSlop(event);
                if ((h > touchSlop || (h < -touchSlop && mQsExpanded))
                        && Math.abs(h) > Math.abs(x - mInitialTouchX)
                        && shouldQuickSettingsIntercept(mInitialTouchX, mInitialTouchY, h)) {
                    if (DEBUG_LOGCAT) Log.d(TAG, "onQsIntercept - start tracking expansion");
@@ -1918,6 +1919,9 @@ public final class NotificationPanelViewController extends PanelViewController {
                    mInitialTouchX = x;
                    mNotificationStackScrollLayoutController.cancelLongPress();
                    return true;
                } else {
                    mShadeLog.logQsTrackingNotStarted(mInitialTouchY, y, h, touchSlop, mQsExpanded,
                            mCollapsedOnDown, mKeyguardShowing, isQsExpansionEnabled());
                }
                break;

+57 −30
Original line number Diff line number Diff line
@@ -11,10 +11,7 @@ import javax.inject.Inject
private const val TAG = "systemui.shade"

/** Lightweight logging utility for the Shade. */
class ShadeLogger @Inject constructor(
    @ShadeLog
    private val buffer: LogBuffer
) {
class ShadeLogger @Inject constructor(@ShadeLog private val buffer: LogBuffer) {
  fun v(@CompileTimeConstant msg: String) {
    buffer.log(TAG, LogLevel.VERBOSE, msg)
  }
@@ -28,21 +25,51 @@ class ShadeLogger @Inject constructor(
  }

  fun onQsInterceptMoveQsTrackingEnabled(h: Float) {
        log(LogLevel.VERBOSE,
    log(
        LogLevel.VERBOSE,
        { double1 = h.toDouble() },
            { "onQsIn[tercept: move action, QS tracking enabled. h = $double1" })
        { "onQsIntercept: move action, QS tracking enabled. h = $double1" })
  }

  fun logQsTrackingNotStarted(
      initialTouchY: Float,
      y: Float,
      h: Float,
      touchSlop: Float,
      qsExpanded: Boolean,
      collapsedOnDown: Boolean,
      keyguardShowing: Boolean,
      qsExpansionEnabled: Boolean
  ) {
    log(
        LogLevel.VERBOSE,
        {
          int1 = initialTouchY.toInt()
          int2 = y.toInt()
          long1 = h.toLong()
          double1 = touchSlop.toDouble()
          bool1 = qsExpanded
          bool2 = collapsedOnDown
          bool3 = keyguardShowing
          bool4 = qsExpansionEnabled
        },
        {
          "QsTrackingNotStarted: initTouchY=$int1,y=$int2,h=$long1,slop=$double1,qsExpanded=" +
              "$bool1,collapsedDown=$bool2,keyguardShowing=$bool3,qsExpansion=$bool4"
        })
  }

  fun logMotionEvent(event: MotionEvent, message: String) {
        log(LogLevel.VERBOSE, {
    log(
        LogLevel.VERBOSE,
        {
          str1 = message
          long1 = event.eventTime
          long2 = event.downTime
          int1 = event.action
          int2 = event.classification
          double1 = event.y.toDouble()
        }, {
            "$str1\neventTime=$long1,downTime=$long2,y=$double1,action=$int1,classification=$int2"
        })
        },
        { "$str1\neventTime=$long1,downTime=$long2,y=$double1,action=$int1,classification=$int2" })
  }
}