diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index f3e6f4c80b647..14d0b7ea86b94 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -3456,7 +3456,9 @@ public class StatusBar extends SystemUI implements DemoMode, pw.println(Settings.Global.zenModeToString(mZenMode)); pw.print(" mUseHeadsUp="); pw.println(mUseHeadsUp); - dumpBarTransitions(pw, "mStatusBarView", mStatusBarView.getBarTransitions()); + if (mStatusBarView != null) { + dumpBarTransitions(pw, "mStatusBarView", mStatusBarView.getBarTransitions()); + } pw.print(" mMediaSessionManager="); pw.println(mMediaSessionManager); @@ -3522,7 +3524,9 @@ public class StatusBar extends SystemUI implements DemoMode, pw.println(" mGroupManager: null"); } - mLightBarController.dump(fd, pw, args); + if (mLightBarController != null) { + mLightBarController.dump(fd, pw, args); + } if (KeyguardUpdateMonitor.getInstance(mContext) != null) { KeyguardUpdateMonitor.getInstance(mContext).dump(fd, pw, args); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java index 0e3ea7a07e7d5..17ca92458bcf4 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java @@ -38,6 +38,8 @@ import static org.mockito.Mockito.when; import static org.mockito.Mockito.verify; import android.app.Notification; +import android.app.trust.TrustManager; +import android.hardware.fingerprint.FingerprintManager; import android.metrics.LogMaker; import android.os.Handler; import android.os.HandlerThread; @@ -55,6 +57,7 @@ import android.testing.TestableLooper; import android.testing.TestableLooper.MessageHandler; import android.testing.TestableLooper.RunWithLooper; import android.util.DisplayMetrics; +import android.view.ViewGroup.LayoutParams; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; @@ -75,6 +78,8 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import java.io.ByteArrayOutputStream; +import java.io.PrintWriter; import java.util.ArrayList; @SmallTest @@ -99,6 +104,8 @@ public class StatusBarTest extends SysuiTestCase { @Before public void setup() throws Exception { + mContext.addMockSystemService(TrustManager.class, mock(TrustManager.class)); + mContext.addMockSystemService(FingerprintManager.class, mock(FingerprintManager.class)); mStatusBarKeyguardViewManager = mock(StatusBarKeyguardViewManager.class); mUnlockMethodCache = mock(UnlockMethodCache.class); mKeyguardIndicationController = mock(KeyguardIndicationController.class); @@ -108,6 +115,7 @@ public class StatusBarTest extends SysuiTestCase { mNotificationData = mock(NotificationData.class); mSystemServicesProxy = mock(SystemServicesProxy.class); mNotificationPanelView = mock(NotificationPanelView.class); + when(mNotificationPanelView.getLayoutParams()).thenReturn(new LayoutParams(0, 0)); mNotificationList = mock(ArrayList.class); IPowerManager powerManagerService = mock(IPowerManager.class); HandlerThread handlerThread = new HandlerThread("TestThread"); @@ -122,6 +130,7 @@ public class StatusBarTest extends SysuiTestCase { mKeyguardIndicationController, mStackScroller, mHeadsUpManager, mNotificationData, mPowerManager, mSystemServicesProxy, mNotificationPanelView, mBarService); + mStatusBar.mContext = mContext; doAnswer(invocation -> { OnDismissAction onDismissAction = (OnDismissAction) invocation.getArguments()[0]; onDismissAction.onDismiss(); @@ -385,6 +394,11 @@ public class StatusBarTest extends SysuiTestCase { TestableLooper.get(this).processAllMessages(); } + @Test + public void testDump_DoesNotCrash() { + mStatusBar.dump(null, new PrintWriter(new ByteArrayOutputStream()), null); + } + static class TestableStatusBar extends StatusBar { public TestableStatusBar(StatusBarKeyguardViewManager man, UnlockMethodCache unlock, KeyguardIndicationController key,