Loading packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java +8 −0 Original line number Diff line number Diff line Loading @@ -84,6 +84,14 @@ public class LogModule { return factory.create("LSShadeTransitionLog", 50); } /** Provides a logging buffer for Shade messages. */ @Provides @SysUISingleton @ShadeLog public static LogBuffer provideShadeLogBuffer(LogBufferFactory factory) { return factory.create("ShadeLog", 500, false); } /** Provides a logging buffer for all logs related to managing notification sections. */ @Provides @SysUISingleton Loading packages/SystemUI/src/com/android/systemui/log/dagger/ShadeLog.java 0 → 100644 +33 −0 Original line number Diff line number Diff line /* * Copyright (C) 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; import com.android.systemui.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import javax.inject.Qualifier; /** A {@link LogBuffer} for Shade touch handling messages. */ @Qualifier @Documented @Retention(RUNTIME) public @interface ShadeLog { } packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +24 −10 Original line number Diff line number Diff line Loading @@ -448,7 +448,6 @@ public final class NotificationPanelViewController extends PanelViewController { */ private boolean mQsAnimatorExpand; private boolean mIsLaunchTransitionFinished; private boolean mOnlyAffordanceInThisMotion; private ValueAnimator mQsSizeChangeAnimator; private boolean mQsScrimEnabled = true; Loading Loading @@ -726,6 +725,7 @@ public final class NotificationPanelViewController extends PanelViewController { AccessibilityManager accessibilityManager, @DisplayId int displayId, KeyguardUpdateMonitor keyguardUpdateMonitor, MetricsLogger metricsLogger, ShadeLogger shadeLogger, ConfigurationController configurationController, Provider<FlingAnimationUtils.Builder> flingAnimationUtilsBuilder, StatusBarTouchableRegionManager statusBarTouchableRegionManager, Loading Loading @@ -792,6 +792,7 @@ public final class NotificationPanelViewController extends PanelViewController { panelExpansionStateManager, ambientState, interactionJankMonitor, shadeLogger, systemClock); mView = view; mVibratorHelper = vibratorHelper; Loading Loading @@ -1887,6 +1888,8 @@ public final class NotificationPanelViewController extends PanelViewController { } if (mQsExpansionAnimator != null) { mInitialHeightOnTouch = mQsExpansionHeight; mShadeLog.logMotionEvent(event, "onQsIntercept: down action, QS tracking enabled"); mQsTracking = true; traceQsJank(true /* startTracing */, false /* wasCancelled */); mNotificationStackScrollLayoutController.cancelLongPress(); Loading Loading @@ -1914,12 +1917,16 @@ public final class NotificationPanelViewController extends PanelViewController { setQsExpansion(h + mInitialHeightOnTouch); trackMovement(event); return true; } else { mShadeLog.logMotionEvent(event, "onQsIntercept: move ignored because qs tracking disabled"); } if ((h > getTouchSlop(event) || (h < -getTouchSlop(event) && mQsExpanded)) && Math.abs(h) > Math.abs(x - mInitialTouchX) && shouldQuickSettingsIntercept(mInitialTouchX, mInitialTouchY, h)) { if (DEBUG_LOGCAT) Log.d(TAG, "onQsIntercept - start tracking expansion"); mView.getParent().requestDisallowInterceptTouchEvent(true); mShadeLog.onQsInterceptMoveQsTrackingEnabled(h); mQsTracking = true; traceQsJank(true /* startTracing */, false /* wasCancelled */); onQsExpansionStarted(); Loading @@ -1935,6 +1942,7 @@ public final class NotificationPanelViewController extends PanelViewController { case MotionEvent.ACTION_CANCEL: case MotionEvent.ACTION_UP: trackMovement(event); mShadeLog.logMotionEvent(event, "onQsIntercept: up action, QS tracking disabled"); mQsTracking = false; break; } Loading Loading @@ -1972,7 +1980,6 @@ public final class NotificationPanelViewController extends PanelViewController { private void initDownStates(MotionEvent event) { if (event.getActionMasked() == MotionEvent.ACTION_DOWN) { mOnlyAffordanceInThisMotion = false; mQsTouchAboveFalsingThreshold = mQsFullyExpanded; mDozingOnDown = isDozing(); mDownX = event.getX(); Loading Loading @@ -2111,6 +2118,7 @@ public final class NotificationPanelViewController extends PanelViewController { && collapsedQs && isQsExpansionEnabled(); if (action == MotionEvent.ACTION_DOWN && expandedShadeCollapsedQs) { // Down in the empty area while fully expanded - go to QS. mShadeLog.logMotionEvent(event, "handleQsTouch: down action, QS tracking enabled"); mQsTracking = true; traceQsJank(true /* startTracing */, false /* wasCancelled */); mConflictingQsExpansionGesture = true; Loading @@ -2125,6 +2133,8 @@ public final class NotificationPanelViewController extends PanelViewController { if (!mQsExpandImmediate && mQsTracking) { onQsTouch(event); if (!mConflictingQsExpansionGesture && !mSplitShadeEnabled) { mShadeLog.logMotionEvent(event, "handleQsTouch: not immediate expand or conflicting gesture"); return true; } } Loading Loading @@ -2192,6 +2202,7 @@ public final class NotificationPanelViewController extends PanelViewController { event.getX(), event.getY(), -1)) { if (DEBUG_LOGCAT) Log.d(TAG, "handleQsDown"); mFalsingCollector.onQsDown(); mShadeLog.logMotionEvent(event, "handleQsDown: down action, QS tracking enabled"); mQsTracking = true; onQsExpansionStarted(); mInitialHeightOnTouch = mQsExpansionHeight; Loading Loading @@ -2274,6 +2285,7 @@ public final class NotificationPanelViewController extends PanelViewController { switch (event.getActionMasked()) { case MotionEvent.ACTION_DOWN: mShadeLog.logMotionEvent(event, "onQsTouch: down action, QS tracking enabled"); mQsTracking = true; traceQsJank(true /* startTracing */, false /* wasCancelled */); mInitialTouchY = y; Loading @@ -2300,6 +2312,7 @@ public final class NotificationPanelViewController extends PanelViewController { case MotionEvent.ACTION_MOVE: if (DEBUG_LOGCAT) Log.d(TAG, "onQSTouch move"); mShadeLog.logMotionEvent(event, "onQsTouch: move action, setting QS expansion"); setQsExpansion(h + mInitialHeightOnTouch); if (h >= getFalsingThreshold()) { mQsTouchAboveFalsingThreshold = true; Loading @@ -2309,6 +2322,8 @@ public final class NotificationPanelViewController extends PanelViewController { case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: mShadeLog.logMotionEvent(event, "onQsTouch: up/cancel action, QS tracking disabled"); mQsTracking = false; mTrackingPointer = -1; trackMovement(event); Loading Loading @@ -3131,8 +3146,8 @@ public final class NotificationPanelViewController extends PanelViewController { positionClockAndNotifications(); } } if (mQsExpandImmediate || mQsExpanded && !mQsTracking && mQsExpansionAnimator == null && !mQsExpansionFromOverscroll) { if (mQsExpandImmediate || (mQsExpanded && !mQsTracking && mQsExpansionAnimator == null && !mQsExpansionFromOverscroll)) { float t; if (mKeyguardShowing) { Loading Loading @@ -4224,6 +4239,7 @@ public final class NotificationPanelViewController extends PanelViewController { || mPulseExpansionHandler.isExpanding(); if (pulseShouldGetTouch && mPulseExpansionHandler.onTouchEvent(event)) { // We're expanding all the other ones shouldn't get this anymore mShadeLog.logMotionEvent(event, "onTouch: PulseExpansionHandler handled event"); return true; } if (mListenForHeadsUp && !mHeadsUpTouchHelper.isTrackingHeadsUp() Loading @@ -4231,14 +4247,10 @@ public final class NotificationPanelViewController extends PanelViewController { && mHeadsUpTouchHelper.onInterceptTouchEvent(event)) { mMetricsLogger.count(COUNTER_PANEL_OPEN_PEEK, 1); } boolean handled = false; if (mOnlyAffordanceInThisMotion) { return true; } handled |= mHeadsUpTouchHelper.onTouchEvent(event); boolean handled = mHeadsUpTouchHelper.onTouchEvent(event); if (!mHeadsUpTouchHelper.isTrackingHeadsUp() && handleQsTouch(event)) { if (DEBUG_LOGCAT) Log.d(TAG, "handleQsTouch true"); mShadeLog.logMotionEvent(event, "onTouch: handleQsTouch handled event"); return true; } if (event.getActionMasked() == MotionEvent.ACTION_DOWN && isFullyCollapsed()) { Loading Loading @@ -4810,6 +4822,8 @@ public final class NotificationPanelViewController extends PanelViewController { } } else if (!mQsExpanded && mQsExpansionAnimator == null) { setQsExpansion(mQsMinExpansionHeight + mLastOverscroll); } else { mShadeLog.v("onLayoutChange: qs expansion not set"); } updateExpandedHeight(getExpandedHeight()); updateHeader(); Loading packages/SystemUI/src/com/android/systemui/shade/PanelViewController.java +15 −3 Original line number Diff line number Diff line Loading @@ -202,6 +202,8 @@ public abstract class PanelViewController { private final InteractionJankMonitor mInteractionJankMonitor; protected final SystemClock mSystemClock; protected final ShadeLogger mShadeLog; protected abstract void onExpandingFinished(); protected void onExpandingStarted() { Loading Loading @@ -242,6 +244,7 @@ public abstract class PanelViewController { PanelExpansionStateManager panelExpansionStateManager, AmbientState ambientState, InteractionJankMonitor interactionJankMonitor, ShadeLogger shadeLogger, SystemClock systemClock) { keyguardStateController.addCallback(new KeyguardStateController.Callback() { @Override Loading @@ -254,6 +257,7 @@ public abstract class PanelViewController { mStatusBarKeyguardViewManager = statusBarKeyguardViewManager; mLockscreenGestureLogger = lockscreenGestureLogger; mPanelExpansionStateManager = panelExpansionStateManager; mShadeLog = shadeLogger; TouchHandler touchHandler = createTouchHandler(); mView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() { @Override Loading Loading @@ -1275,9 +1279,16 @@ public abstract class PanelViewController { @Override public boolean onTouch(View v, MotionEvent event) { if (mInstantExpanding || (mTouchDisabled && event.getActionMasked() != MotionEvent.ACTION_CANCEL) || (mMotionAborted && event.getActionMasked() != MotionEvent.ACTION_DOWN)) { if (mInstantExpanding) { mShadeLog.logMotionEvent(event, "onTouch: touch ignored due to instant expanding"); return false; } if (mTouchDisabled && event.getActionMasked() != MotionEvent.ACTION_CANCEL) { mShadeLog.logMotionEvent(event, "onTouch: non-cancel action, touch disabled"); return false; } if (mMotionAborted && event.getActionMasked() != MotionEvent.ACTION_DOWN) { mShadeLog.logMotionEvent(event, "onTouch: non-down action, motion was aborted"); return false; } Loading @@ -1287,6 +1298,7 @@ public abstract class PanelViewController { // 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"); return false; } Loading packages/SystemUI/src/com/android/systemui/shade/ShadeLogger.kt 0 → 100644 +48 −0 Original line number Diff line number Diff line package com.android.systemui.shade import android.view.MotionEvent import com.android.systemui.log.LogBuffer import com.android.systemui.log.LogLevel import com.android.systemui.log.LogMessage import com.android.systemui.log.dagger.ShadeLog import com.google.errorprone.annotations.CompileTimeConstant 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 ) { fun v(@CompileTimeConstant msg: String) { buffer.log(TAG, LogLevel.VERBOSE, msg) } private inline fun log( logLevel: LogLevel, initializer: LogMessage.() -> Unit, noinline printer: LogMessage.() -> String ) { buffer.log(TAG, logLevel, initializer, printer) } fun onQsInterceptMoveQsTrackingEnabled(h: Float) { log(LogLevel.VERBOSE, { double1 = h.toDouble() }, { "onQsIn[tercept: move action, QS tracking enabled. h = $double1" }) } fun logMotionEvent(event: MotionEvent, message: String) { 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" }) } } Loading
packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java +8 −0 Original line number Diff line number Diff line Loading @@ -84,6 +84,14 @@ public class LogModule { return factory.create("LSShadeTransitionLog", 50); } /** Provides a logging buffer for Shade messages. */ @Provides @SysUISingleton @ShadeLog public static LogBuffer provideShadeLogBuffer(LogBufferFactory factory) { return factory.create("ShadeLog", 500, false); } /** Provides a logging buffer for all logs related to managing notification sections. */ @Provides @SysUISingleton Loading
packages/SystemUI/src/com/android/systemui/log/dagger/ShadeLog.java 0 → 100644 +33 −0 Original line number Diff line number Diff line /* * Copyright (C) 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; import com.android.systemui.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import javax.inject.Qualifier; /** A {@link LogBuffer} for Shade touch handling messages. */ @Qualifier @Documented @Retention(RUNTIME) public @interface ShadeLog { }
packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +24 −10 Original line number Diff line number Diff line Loading @@ -448,7 +448,6 @@ public final class NotificationPanelViewController extends PanelViewController { */ private boolean mQsAnimatorExpand; private boolean mIsLaunchTransitionFinished; private boolean mOnlyAffordanceInThisMotion; private ValueAnimator mQsSizeChangeAnimator; private boolean mQsScrimEnabled = true; Loading Loading @@ -726,6 +725,7 @@ public final class NotificationPanelViewController extends PanelViewController { AccessibilityManager accessibilityManager, @DisplayId int displayId, KeyguardUpdateMonitor keyguardUpdateMonitor, MetricsLogger metricsLogger, ShadeLogger shadeLogger, ConfigurationController configurationController, Provider<FlingAnimationUtils.Builder> flingAnimationUtilsBuilder, StatusBarTouchableRegionManager statusBarTouchableRegionManager, Loading Loading @@ -792,6 +792,7 @@ public final class NotificationPanelViewController extends PanelViewController { panelExpansionStateManager, ambientState, interactionJankMonitor, shadeLogger, systemClock); mView = view; mVibratorHelper = vibratorHelper; Loading Loading @@ -1887,6 +1888,8 @@ public final class NotificationPanelViewController extends PanelViewController { } if (mQsExpansionAnimator != null) { mInitialHeightOnTouch = mQsExpansionHeight; mShadeLog.logMotionEvent(event, "onQsIntercept: down action, QS tracking enabled"); mQsTracking = true; traceQsJank(true /* startTracing */, false /* wasCancelled */); mNotificationStackScrollLayoutController.cancelLongPress(); Loading Loading @@ -1914,12 +1917,16 @@ public final class NotificationPanelViewController extends PanelViewController { setQsExpansion(h + mInitialHeightOnTouch); trackMovement(event); return true; } else { mShadeLog.logMotionEvent(event, "onQsIntercept: move ignored because qs tracking disabled"); } if ((h > getTouchSlop(event) || (h < -getTouchSlop(event) && mQsExpanded)) && Math.abs(h) > Math.abs(x - mInitialTouchX) && shouldQuickSettingsIntercept(mInitialTouchX, mInitialTouchY, h)) { if (DEBUG_LOGCAT) Log.d(TAG, "onQsIntercept - start tracking expansion"); mView.getParent().requestDisallowInterceptTouchEvent(true); mShadeLog.onQsInterceptMoveQsTrackingEnabled(h); mQsTracking = true; traceQsJank(true /* startTracing */, false /* wasCancelled */); onQsExpansionStarted(); Loading @@ -1935,6 +1942,7 @@ public final class NotificationPanelViewController extends PanelViewController { case MotionEvent.ACTION_CANCEL: case MotionEvent.ACTION_UP: trackMovement(event); mShadeLog.logMotionEvent(event, "onQsIntercept: up action, QS tracking disabled"); mQsTracking = false; break; } Loading Loading @@ -1972,7 +1980,6 @@ public final class NotificationPanelViewController extends PanelViewController { private void initDownStates(MotionEvent event) { if (event.getActionMasked() == MotionEvent.ACTION_DOWN) { mOnlyAffordanceInThisMotion = false; mQsTouchAboveFalsingThreshold = mQsFullyExpanded; mDozingOnDown = isDozing(); mDownX = event.getX(); Loading Loading @@ -2111,6 +2118,7 @@ public final class NotificationPanelViewController extends PanelViewController { && collapsedQs && isQsExpansionEnabled(); if (action == MotionEvent.ACTION_DOWN && expandedShadeCollapsedQs) { // Down in the empty area while fully expanded - go to QS. mShadeLog.logMotionEvent(event, "handleQsTouch: down action, QS tracking enabled"); mQsTracking = true; traceQsJank(true /* startTracing */, false /* wasCancelled */); mConflictingQsExpansionGesture = true; Loading @@ -2125,6 +2133,8 @@ public final class NotificationPanelViewController extends PanelViewController { if (!mQsExpandImmediate && mQsTracking) { onQsTouch(event); if (!mConflictingQsExpansionGesture && !mSplitShadeEnabled) { mShadeLog.logMotionEvent(event, "handleQsTouch: not immediate expand or conflicting gesture"); return true; } } Loading Loading @@ -2192,6 +2202,7 @@ public final class NotificationPanelViewController extends PanelViewController { event.getX(), event.getY(), -1)) { if (DEBUG_LOGCAT) Log.d(TAG, "handleQsDown"); mFalsingCollector.onQsDown(); mShadeLog.logMotionEvent(event, "handleQsDown: down action, QS tracking enabled"); mQsTracking = true; onQsExpansionStarted(); mInitialHeightOnTouch = mQsExpansionHeight; Loading Loading @@ -2274,6 +2285,7 @@ public final class NotificationPanelViewController extends PanelViewController { switch (event.getActionMasked()) { case MotionEvent.ACTION_DOWN: mShadeLog.logMotionEvent(event, "onQsTouch: down action, QS tracking enabled"); mQsTracking = true; traceQsJank(true /* startTracing */, false /* wasCancelled */); mInitialTouchY = y; Loading @@ -2300,6 +2312,7 @@ public final class NotificationPanelViewController extends PanelViewController { case MotionEvent.ACTION_MOVE: if (DEBUG_LOGCAT) Log.d(TAG, "onQSTouch move"); mShadeLog.logMotionEvent(event, "onQsTouch: move action, setting QS expansion"); setQsExpansion(h + mInitialHeightOnTouch); if (h >= getFalsingThreshold()) { mQsTouchAboveFalsingThreshold = true; Loading @@ -2309,6 +2322,8 @@ public final class NotificationPanelViewController extends PanelViewController { case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: mShadeLog.logMotionEvent(event, "onQsTouch: up/cancel action, QS tracking disabled"); mQsTracking = false; mTrackingPointer = -1; trackMovement(event); Loading Loading @@ -3131,8 +3146,8 @@ public final class NotificationPanelViewController extends PanelViewController { positionClockAndNotifications(); } } if (mQsExpandImmediate || mQsExpanded && !mQsTracking && mQsExpansionAnimator == null && !mQsExpansionFromOverscroll) { if (mQsExpandImmediate || (mQsExpanded && !mQsTracking && mQsExpansionAnimator == null && !mQsExpansionFromOverscroll)) { float t; if (mKeyguardShowing) { Loading Loading @@ -4224,6 +4239,7 @@ public final class NotificationPanelViewController extends PanelViewController { || mPulseExpansionHandler.isExpanding(); if (pulseShouldGetTouch && mPulseExpansionHandler.onTouchEvent(event)) { // We're expanding all the other ones shouldn't get this anymore mShadeLog.logMotionEvent(event, "onTouch: PulseExpansionHandler handled event"); return true; } if (mListenForHeadsUp && !mHeadsUpTouchHelper.isTrackingHeadsUp() Loading @@ -4231,14 +4247,10 @@ public final class NotificationPanelViewController extends PanelViewController { && mHeadsUpTouchHelper.onInterceptTouchEvent(event)) { mMetricsLogger.count(COUNTER_PANEL_OPEN_PEEK, 1); } boolean handled = false; if (mOnlyAffordanceInThisMotion) { return true; } handled |= mHeadsUpTouchHelper.onTouchEvent(event); boolean handled = mHeadsUpTouchHelper.onTouchEvent(event); if (!mHeadsUpTouchHelper.isTrackingHeadsUp() && handleQsTouch(event)) { if (DEBUG_LOGCAT) Log.d(TAG, "handleQsTouch true"); mShadeLog.logMotionEvent(event, "onTouch: handleQsTouch handled event"); return true; } if (event.getActionMasked() == MotionEvent.ACTION_DOWN && isFullyCollapsed()) { Loading Loading @@ -4810,6 +4822,8 @@ public final class NotificationPanelViewController extends PanelViewController { } } else if (!mQsExpanded && mQsExpansionAnimator == null) { setQsExpansion(mQsMinExpansionHeight + mLastOverscroll); } else { mShadeLog.v("onLayoutChange: qs expansion not set"); } updateExpandedHeight(getExpandedHeight()); updateHeader(); Loading
packages/SystemUI/src/com/android/systemui/shade/PanelViewController.java +15 −3 Original line number Diff line number Diff line Loading @@ -202,6 +202,8 @@ public abstract class PanelViewController { private final InteractionJankMonitor mInteractionJankMonitor; protected final SystemClock mSystemClock; protected final ShadeLogger mShadeLog; protected abstract void onExpandingFinished(); protected void onExpandingStarted() { Loading Loading @@ -242,6 +244,7 @@ public abstract class PanelViewController { PanelExpansionStateManager panelExpansionStateManager, AmbientState ambientState, InteractionJankMonitor interactionJankMonitor, ShadeLogger shadeLogger, SystemClock systemClock) { keyguardStateController.addCallback(new KeyguardStateController.Callback() { @Override Loading @@ -254,6 +257,7 @@ public abstract class PanelViewController { mStatusBarKeyguardViewManager = statusBarKeyguardViewManager; mLockscreenGestureLogger = lockscreenGestureLogger; mPanelExpansionStateManager = panelExpansionStateManager; mShadeLog = shadeLogger; TouchHandler touchHandler = createTouchHandler(); mView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() { @Override Loading Loading @@ -1275,9 +1279,16 @@ public abstract class PanelViewController { @Override public boolean onTouch(View v, MotionEvent event) { if (mInstantExpanding || (mTouchDisabled && event.getActionMasked() != MotionEvent.ACTION_CANCEL) || (mMotionAborted && event.getActionMasked() != MotionEvent.ACTION_DOWN)) { if (mInstantExpanding) { mShadeLog.logMotionEvent(event, "onTouch: touch ignored due to instant expanding"); return false; } if (mTouchDisabled && event.getActionMasked() != MotionEvent.ACTION_CANCEL) { mShadeLog.logMotionEvent(event, "onTouch: non-cancel action, touch disabled"); return false; } if (mMotionAborted && event.getActionMasked() != MotionEvent.ACTION_DOWN) { mShadeLog.logMotionEvent(event, "onTouch: non-down action, motion was aborted"); return false; } Loading @@ -1287,6 +1298,7 @@ public abstract class PanelViewController { // 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"); return false; } Loading
packages/SystemUI/src/com/android/systemui/shade/ShadeLogger.kt 0 → 100644 +48 −0 Original line number Diff line number Diff line package com.android.systemui.shade import android.view.MotionEvent import com.android.systemui.log.LogBuffer import com.android.systemui.log.LogLevel import com.android.systemui.log.LogMessage import com.android.systemui.log.dagger.ShadeLog import com.google.errorprone.annotations.CompileTimeConstant 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 ) { fun v(@CompileTimeConstant msg: String) { buffer.log(TAG, LogLevel.VERBOSE, msg) } private inline fun log( logLevel: LogLevel, initializer: LogMessage.() -> Unit, noinline printer: LogMessage.() -> String ) { buffer.log(TAG, logLevel, initializer, printer) } fun onQsInterceptMoveQsTrackingEnabled(h: Float) { log(LogLevel.VERBOSE, { double1 = h.toDouble() }, { "onQsIn[tercept: move action, QS tracking enabled. h = $double1" }) } fun logMotionEvent(event: MotionEvent, message: String) { 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" }) } }