diff options
5 files changed, 40 insertions, 33 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java index 7f5ff1b17cbf..d54a5548a69c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java @@ -19,6 +19,8 @@ package com.android.systemui.statusbar.notification.stack; import static com.android.internal.jank.InteractionJankMonitor.CUJ_NOTIFICATION_SHADE_SCROLL_FLING; import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_SILENT; import static com.android.systemui.statusbar.notification.stack.StackStateAnimator.ANIMATION_DURATION_SWIPE; +import static com.android.systemui.util.DumpUtilsKt.println; +import static com.android.systemui.util.DumpUtilsKt.visibilityString; import static java.lang.annotation.RetentionPolicy.SOURCE; @@ -5027,30 +5029,31 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable @ShadeViewRefactor(RefactorComponent.SHADE_VIEW) public void dump(PrintWriter pwOriginal, String[] args) { IndentingPrintWriter pw = DumpUtilsKt.asIndenting(pwOriginal); - StringBuilder sb = new StringBuilder("[") - .append(this.getClass().getSimpleName()).append(":") - .append(" pulsing=").append(mPulsing ? "T" : "f") - .append(" expanded=").append(mIsExpanded ? "T" : "f") - .append(" headsUpPinned=").append(mInHeadsUpPinnedMode ? "T" : "f") - .append(" qsClipping=").append(mShouldUseRoundedRectClipping ? "T" : "f") - .append(" qsClipDismiss=").append(mDismissUsingRowTranslationX ? "T" : "f") - .append(" visibility=").append(DumpUtilsKt.visibilityString(getVisibility())) - .append(" alpha=").append(getAlpha()) - .append(" scrollY=").append(mAmbientState.getScrollY()) - .append(" maxTopPadding=").append(mMaxTopPadding) - .append(" showShelfOnly=").append(mShouldShowShelfOnly ? "T" : "f") - .append(" qsExpandFraction=").append(mQsExpansionFraction) - .append(" isCurrentUserSetup=").append(mIsCurrentUserSetup) - .append(" hideAmount=").append(mAmbientState.getHideAmount()) - .append(" ambientStateSwipingUp=").append(mAmbientState.isSwipingUp()) - .append(" maxDisplayedNotifications=").append(mMaxDisplayedNotifications) - .append(" intrinsicContentHeight=").append(mIntrinsicContentHeight) - .append(" contentHeight=").append(mContentHeight) - .append(" intrinsicPadding=").append(mIntrinsicPadding) - .append(" topPadding=").append(mTopPadding) - .append(" bottomPadding=").append(mBottomPadding) - .append("]"); - pw.println(sb.toString()); + pw.println("Internal state:"); + DumpUtilsKt.withIncreasedIndent(pw, () -> { + println(pw, "pulsing", mPulsing); + println(pw, "expanded", mIsExpanded); + println(pw, "headsUpPinned", mInHeadsUpPinnedMode); + println(pw, "qsClipping", mShouldUseRoundedRectClipping); + println(pw, "qsClipDismiss", mDismissUsingRowTranslationX); + println(pw, "visibility", visibilityString(getVisibility())); + println(pw, "alpha", getAlpha()); + println(pw, "scrollY", mAmbientState.getScrollY()); + println(pw, "maxTopPadding", mMaxTopPadding); + println(pw, "showShelfOnly", mShouldShowShelfOnly); + println(pw, "qsExpandFraction", mQsExpansionFraction); + println(pw, "isCurrentUserSetup", mIsCurrentUserSetup); + println(pw, "hideAmount", mAmbientState.getHideAmount()); + println(pw, "ambientStateSwipingUp", mAmbientState.isSwipingUp()); + println(pw, "maxDisplayedNotifications", mMaxDisplayedNotifications); + println(pw, "intrinsicContentHeight", mIntrinsicContentHeight); + println(pw, "contentHeight", mContentHeight); + println(pw, "intrinsicPadding", mIntrinsicPadding); + println(pw, "topPadding", mTopPadding); + println(pw, "bottomPadding", mBottomPadding); + }); + pw.println(); + pw.println("Contents:"); DumpUtilsKt.withIncreasedIndent(pw, () -> { int childCount = getChildCount(); pw.println("Number of children: " + childCount); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java index 2493ccbe5a48..1e69ee65c118 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java @@ -68,6 +68,7 @@ import com.android.systemui.classifier.Classifier; import com.android.systemui.classifier.FalsingCollector; import com.android.systemui.colorextraction.SysuiColorExtractor; import com.android.systemui.dagger.qualifiers.Main; +import com.android.systemui.dump.DumpManager; import com.android.systemui.media.KeyguardMediaController; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin; @@ -156,6 +157,7 @@ public class NotificationStackScrollLayoutController { private final ConfigurationController mConfigurationController; private final ZenModeController mZenModeController; private final MetricsLogger mMetricsLogger; + private final DumpManager mDumpManager; private final FalsingCollector mFalsingCollector; private final FalsingManager mFalsingManager; private final Resources mResources; @@ -635,6 +637,7 @@ public class NotificationStackScrollLayoutController { SysuiColorExtractor colorExtractor, NotificationLockscreenUserManager lockscreenUserManager, MetricsLogger metricsLogger, + DumpManager dumpManager, FalsingCollector falsingCollector, FalsingManager falsingManager, @Main Resources resources, @@ -677,6 +680,7 @@ public class NotificationStackScrollLayoutController { mZenModeController = zenModeController; mLockscreenUserManager = lockscreenUserManager; mMetricsLogger = metricsLogger; + mDumpManager = dumpManager; mLockscreenShadeTransitionController = lockscreenShadeTransitionController; mShadeTransitionController = shadeTransitionController; mFalsingCollector = falsingCollector; @@ -728,6 +732,7 @@ public class NotificationStackScrollLayoutController { } }); mView.setShadeController(mShadeController); + mDumpManager.registerDumpable(mView); mKeyguardBypassController.registerOnBypassStateChangedListener( isEnabled -> mNotificationRoundnessManager.setShouldRoundPulsingViews(!isEnabled)); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java index b3e0073de7a1..8c6176408821 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java @@ -2354,15 +2354,7 @@ public class CentralSurfacesImpl extends CoreStartable implements pw.print (" "); mNotificationPanelViewController.dump(pw, args); } - pw.println(" mStackScroller: "); - if (mStackScroller != null) { - // Double indent until we rewrite the rest of this dump() - pw.increaseIndent(); - pw.increaseIndent(); - mStackScroller.dump(pw, args); - pw.decreaseIndent(); - pw.decreaseIndent(); - } + pw.println(" mStackScroller: " + mStackScroller + " (dump moved)"); pw.println(" Theme:"); String nightMode = mUiModeManager == null ? "null" : mUiModeManager.getNightMode() + ""; pw.println(" dark theme: " + nightMode + diff --git a/packages/SystemUI/src/com/android/systemui/util/DumpUtils.kt b/packages/SystemUI/src/com/android/systemui/util/DumpUtils.kt index f9524769d304..018ef968ff2d 100644 --- a/packages/SystemUI/src/com/android/systemui/util/DumpUtils.kt +++ b/packages/SystemUI/src/com/android/systemui/util/DumpUtils.kt @@ -55,6 +55,10 @@ fun IndentingPrintWriter.withIncreasedIndent(runnable: Runnable) { } } +/** Print a line which is '$label=$value' */ +fun IndentingPrintWriter.println(label: String, value: Any) = + append(label).append('=').println(value) + /** Return a readable string for the visibility */ fun visibilityString(@View.Visibility visibility: Int): String = when (visibility) { View.GONE -> "gone" diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutControllerTest.java index 94a93ad6cf33..4efd5c995a97 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutControllerTest.java @@ -47,6 +47,7 @@ import com.android.systemui.SysuiTestCase; import com.android.systemui.classifier.FalsingCollectorFake; import com.android.systemui.classifier.FalsingManagerFake; import com.android.systemui.colorextraction.SysuiColorExtractor; +import com.android.systemui.dump.DumpManager; import com.android.systemui.media.KeyguardMediaController; import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin; import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin.OnMenuEventListener; @@ -113,6 +114,7 @@ public class NotificationStackScrollLayoutControllerTest extends SysuiTestCase { @Mock private SysuiColorExtractor mColorExtractor; @Mock private NotificationLockscreenUserManager mNotificationLockscreenUserManager; @Mock private MetricsLogger mMetricsLogger; + @Mock private DumpManager mDumpManager; @Mock private Resources mResources; @Mock(answer = Answers.RETURNS_SELF) private NotificationSwipeHelper.Builder mNotificationSwipeHelperBuilder; @@ -167,6 +169,7 @@ public class NotificationStackScrollLayoutControllerTest extends SysuiTestCase { mColorExtractor, mNotificationLockscreenUserManager, mMetricsLogger, + mDumpManager, new FalsingCollectorFake(), new FalsingManagerFake(), mResources, |