Register NSSL as a top-level Dumpable

This also refactors the NSSL dump to put each internal state value on its own line.

Bug: 231128516
Test: dumpsysui CentralSurfacesImpl NotificationStackScrollLayout
Change-Id: I1bda0393fb8248f0989dad9cf336212748c3261e
This commit is contained in:
Jeff DeCew
2022-06-07 17:20:45 +00:00
parent 1656ca704a
commit de5754117a
5 changed files with 40 additions and 33 deletions

View File

@@ -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);

View File

@@ -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));

View File

@@ -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 +

View File

@@ -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"

View File

@@ -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,