From b74dae92a8b2fe7db403dd57753d78d393a9d001 Mon Sep 17 00:00:00 2001 From: Jeff DeCew Date: Thu, 20 Jan 2022 15:10:50 +0000 Subject: [PATCH] Transition NotificationInterruptStateProviderImpl to use NotifHeadsUpLog LogBuffer Fixes: 205284674 Test: dumpsysui NotifHeadsUpLog Change-Id: I45bd2e2a0cd7a4fdc83f68ef4221e5ebfdbaf001 --- .../interruption/HeadsUpViewBinderLogger.kt | 3 +- .../NotificationInterruptLogger.kt | 216 ++++++++++++++++++ ...otificationInterruptStateProviderImpl.java | 96 +++----- ...icationInterruptStateProviderImplTest.java | 3 + .../statusbar/phone/StatusBarTest.java | 5 +- .../android/systemui/wmshell/BubblesTest.java | 2 + .../wmshell/NewNotifPipelineBubblesTest.java | 2 + ...otificationInterruptStateProviderImpl.java | 3 + 8 files changed, 259 insertions(+), 71 deletions(-) create mode 100644 packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptLogger.kt diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/HeadsUpViewBinderLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/HeadsUpViewBinderLogger.kt index 06651f2c1b4ce..50a6207efe0bd 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/HeadsUpViewBinderLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/HeadsUpViewBinderLogger.kt @@ -46,4 +46,5 @@ class HeadsUpViewBinderLogger @Inject constructor(@NotificationHeadsUpLog val bu }) } } -const val TAG = "HeadsUpViewBinder" \ No newline at end of file + +private const val TAG = "HeadsUpViewBinder" diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptLogger.kt new file mode 100644 index 0000000000000..c991376c9e369 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptLogger.kt @@ -0,0 +1,216 @@ +/* + * 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.statusbar.notification.interruption + +import android.service.notification.StatusBarNotification +import com.android.systemui.log.LogBuffer +import com.android.systemui.log.LogLevel.DEBUG +import com.android.systemui.log.LogLevel.INFO +import com.android.systemui.log.dagger.NotificationHeadsUpLog +import com.android.systemui.log.dagger.NotificationLog +import javax.inject.Inject + +class NotificationInterruptLogger @Inject constructor( + @NotificationLog val notifBuffer: LogBuffer, + @NotificationHeadsUpLog val hunBuffer: LogBuffer +) { + fun logHeadsUpFeatureChanged(useHeadsUp: Boolean) { + hunBuffer.log(TAG, INFO, { + bool1 = useHeadsUp + }, { + "heads up is enabled=$bool1" + }) + } + + fun logWillDismissAll() { + hunBuffer.log(TAG, INFO, { + }, { + "dismissing any existing heads up notification on disable event" + }) + } + + fun logNoBubbleNotAllowed(sbn: StatusBarNotification) { + notifBuffer.log(TAG, DEBUG, { + str1 = sbn.key + }, { + "No bubble up: not allowed to bubble: $str1" + }) + } + + fun logNoBubbleNoMetadata(sbn: StatusBarNotification) { + notifBuffer.log(TAG, DEBUG, { + str1 = sbn.key + }, { + "No bubble up: notification: $str1 doesn't have valid metadata" + }) + } + + fun logNoHeadsUpFeatureDisabled() { + hunBuffer.log(TAG, DEBUG, { + }, { + "No heads up: no huns" + }) + } + + fun logNoHeadsUpPackageSnoozed(sbn: StatusBarNotification) { + hunBuffer.log(TAG, DEBUG, { + str1 = sbn.key + }, { + "No alerting: snoozed package: $str1" + }) + } + + fun logNoHeadsUpAlreadyBubbled(sbn: StatusBarNotification) { + hunBuffer.log(TAG, DEBUG, { + str1 = sbn.key + }, { + "No heads up: in unlocked shade where notification is shown as a bubble: $str1" + }) + } + + fun logNoHeadsUpSuppressedByDnd(sbn: StatusBarNotification) { + hunBuffer.log(TAG, DEBUG, { + str1 = sbn.key + }, { + "No heads up: suppressed by DND: $str1" + }) + } + + fun logNoHeadsUpNotImportant(sbn: StatusBarNotification) { + hunBuffer.log(TAG, DEBUG, { + str1 = sbn.key + }, { + "No heads up: unimportant notification: $str1" + }) + } + + fun logNoHeadsUpNotInUse(sbn: StatusBarNotification) { + hunBuffer.log(TAG, DEBUG, { + str1 = sbn.key + }, { + "No heads up: not in use: $str1" + }) + } + + fun logNoHeadsUpSuppressedBy( + sbn: StatusBarNotification, + suppressor: NotificationInterruptSuppressor + ) { + hunBuffer.log(TAG, DEBUG, { + str1 = sbn.key + str2 = suppressor.name + }, { + "No heads up: aborted by suppressor: $str2 sbnKey=$str1" + }) + } + + fun logHeadsUp(sbn: StatusBarNotification) { + hunBuffer.log(TAG, DEBUG, { + str1 = sbn.key + }, { + "Heads up: $str1" + }) + } + + fun logNoAlertingFilteredOut(sbn: StatusBarNotification) { + hunBuffer.log(TAG, DEBUG, { + str1 = sbn.key + }, { + "No alerting: filtered notification: $str1" + }) + } + + fun logNoAlertingGroupAlertBehavior(sbn: StatusBarNotification) { + hunBuffer.log(TAG, DEBUG, { + str1 = sbn.key + }, { + "No alerting: suppressed due to group alert behavior: $str1" + }) + } + + fun logNoAlertingSuppressedBy( + sbn: StatusBarNotification, + suppressor: NotificationInterruptSuppressor, + awake: Boolean + ) { + hunBuffer.log(TAG, DEBUG, { + str1 = sbn.key + str2 = suppressor.name + bool1 = awake + }, { + "No alerting: aborted by suppressor: $str2 awake=$bool1 sbnKey=$str1" + }) + } + + fun logNoAlertingRecentFullscreen(sbn: StatusBarNotification) { + hunBuffer.log(TAG, DEBUG, { + str1 = sbn.key + }, { + "No alerting: recent fullscreen: $str1" + }) + } + + fun logNoPulsingSettingDisabled(sbn: StatusBarNotification) { + hunBuffer.log(TAG, DEBUG, { + str1 = sbn.key + }, { + "No pulsing: disabled by setting: $str1" + }) + } + + fun logNoPulsingBatteryDisabled(sbn: StatusBarNotification) { + hunBuffer.log(TAG, DEBUG, { + str1 = sbn.key + }, { + "No pulsing: disabled by battery saver: $str1" + }) + } + + fun logNoPulsingNoAlert(sbn: StatusBarNotification) { + hunBuffer.log(TAG, DEBUG, { + str1 = sbn.key + }, { + "No pulsing: notification shouldn't alert: $str1" + }) + } + + fun logNoPulsingNoAmbientEffect(sbn: StatusBarNotification) { + hunBuffer.log(TAG, DEBUG, { + str1 = sbn.key + }, { + "No pulsing: ambient effect suppressed: $str1" + }) + } + + fun logNoPulsingNotImportant(sbn: StatusBarNotification) { + hunBuffer.log(TAG, DEBUG, { + str1 = sbn.key + }, { + "No pulsing: not important enough: $str1" + }) + } + + fun logPulsing(sbn: StatusBarNotification) { + hunBuffer.log(TAG, DEBUG, { + str1 = sbn.key + }, { + "Pulsing: $str1" + }) + } +} + +private const val TAG = "InterruptionStateProvider" diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImpl.java index 2b4bc918e66e0..7ed2699b10684 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImpl.java @@ -40,7 +40,6 @@ import com.android.systemui.statusbar.notification.NotificationFilter; import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.HeadsUpManager; -import com.android.systemui.util.Compile; import java.util.ArrayList; import java.util.List; @@ -53,8 +52,6 @@ import javax.inject.Inject; @SysUISingleton public class NotificationInterruptStateProviderImpl implements NotificationInterruptStateProvider { private static final String TAG = "InterruptionStateProvider"; - private static final boolean DEBUG = Compile.IS_DEBUG; - private static final boolean DEBUG_HEADS_UP = Compile.IS_DEBUG; private static final boolean ENABLE_HEADS_UP = true; private static final String SETTING_HEADS_UP_TICKER = "ticker_gets_heads_up"; @@ -67,7 +64,8 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter private final AmbientDisplayConfiguration mAmbientDisplayConfiguration; private final BatteryController mBatteryController; private final ContentObserver mHeadsUpObserver; - private HeadsUpManager mHeadsUpManager; + private final HeadsUpManager mHeadsUpManager; + private final NotificationInterruptLogger mLogger; @VisibleForTesting protected boolean mUseHeadsUp = false; @@ -82,6 +80,7 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter BatteryController batteryController, StatusBarStateController statusBarStateController, HeadsUpManager headsUpManager, + NotificationInterruptLogger logger, @Main Handler mainHandler) { mContentResolver = contentResolver; mPowerManager = powerManager; @@ -91,6 +90,7 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter mNotificationFilter = notificationFilter; mStatusBarStateController = statusBarStateController; mHeadsUpManager = headsUpManager; + mLogger = logger; mHeadsUpObserver = new ContentObserver(mainHandler) { @Override public void onChange(boolean selfChange) { @@ -100,11 +100,10 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter mContentResolver, Settings.Global.HEADS_UP_NOTIFICATIONS_ENABLED, Settings.Global.HEADS_UP_OFF); - Log.d(TAG, "heads up is " + (mUseHeadsUp ? "enabled" : "disabled")); + mLogger.logHeadsUpFeatureChanged(mUseHeadsUp); if (wasUsing != mUseHeadsUp) { if (!mUseHeadsUp) { - Log.d(TAG, "dismissing any existing heads up notification on " - + "disable event"); + mLogger.logWillDismissAll(); mHeadsUpManager.releaseAllImmediately(); } } @@ -141,19 +140,14 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter } if (!entry.canBubble()) { - if (DEBUG) { - Log.d(TAG, "No bubble up: not allowed to bubble: " + sbn.getKey()); - } + mLogger.logNoBubbleNotAllowed(sbn); return false; } if (entry.getBubbleMetadata() == null || (entry.getBubbleMetadata().getShortcutId() == null && entry.getBubbleMetadata().getIntent() == null)) { - if (DEBUG) { - Log.d(TAG, "No bubble up: notification: " + sbn.getKey() - + " doesn't have valid metadata"); - } + mLogger.logNoBubbleNoMetadata(sbn); return false; } @@ -185,9 +179,7 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter StatusBarNotification sbn = entry.getSbn(); if (!mUseHeadsUp) { - if (DEBUG_HEADS_UP) { - Log.d(TAG, "No heads up: no huns"); - } + mLogger.logNoHeadsUpFeatureDisabled(); return false; } @@ -200,32 +192,23 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter } if (isSnoozedPackage(sbn)) { - if (DEBUG_HEADS_UP) { - Log.d(TAG, "No alerting: snoozed package: " + sbn.getKey()); - } + mLogger.logNoHeadsUpPackageSnoozed(sbn); return false; } boolean inShade = mStatusBarStateController.getState() == SHADE; if (entry.isBubble() && inShade) { - if (DEBUG_HEADS_UP) { - Log.d(TAG, "No heads up: in unlocked shade where notification is shown as a " - + "bubble: " + sbn.getKey()); - } + mLogger.logNoHeadsUpAlreadyBubbled(sbn); return false; } if (entry.shouldSuppressPeek()) { - if (DEBUG_HEADS_UP) { - Log.d(TAG, "No heads up: suppressed by DND: " + sbn.getKey()); - } + mLogger.logNoHeadsUpSuppressedByDnd(sbn); return false; } if (entry.getImportance() < NotificationManager.IMPORTANCE_HIGH) { - if (DEBUG_HEADS_UP) { - Log.d(TAG, "No heads up: unimportant notification: " + sbn.getKey()); - } + mLogger.logNoHeadsUpNotImportant(sbn); return false; } @@ -238,21 +221,17 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter boolean inUse = mPowerManager.isScreenOn() && !isDreaming; if (!inUse) { - if (DEBUG_HEADS_UP) { - Log.d(TAG, "No heads up: not in use: " + sbn.getKey()); - } + mLogger.logNoHeadsUpNotInUse(sbn); return false; } for (int i = 0; i < mSuppressors.size(); i++) { if (mSuppressors.get(i).suppressAwakeHeadsUp(entry)) { - if (DEBUG_HEADS_UP) { - Log.d(TAG, "No heads up: aborted by suppressor: " - + mSuppressors.get(i).getName() + " sbnKey=" + sbn.getKey()); - } + mLogger.logNoHeadsUpSuppressedBy(sbn, mSuppressors.get(i)); return false; } } + mLogger.logHeadsUp(sbn); return true; } @@ -267,39 +246,30 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter StatusBarNotification sbn = entry.getSbn(); if (!mAmbientDisplayConfiguration.pulseOnNotificationEnabled(UserHandle.USER_CURRENT)) { - if (DEBUG_HEADS_UP) { - Log.d(TAG, "No pulsing: disabled by setting: " + sbn.getKey()); - } + mLogger.logNoPulsingSettingDisabled(sbn); return false; } if (mBatteryController.isAodPowerSave()) { - if (DEBUG_HEADS_UP) { - Log.d(TAG, "No pulsing: disabled by battery saver: " + sbn.getKey()); - } + mLogger.logNoPulsingBatteryDisabled(sbn); return false; } if (!canAlertCommon(entry)) { - if (DEBUG_HEADS_UP) { - Log.d(TAG, "No pulsing: notification shouldn't alert: " + sbn.getKey()); - } + mLogger.logNoPulsingNoAlert(sbn); return false; } if (entry.shouldSuppressAmbient()) { - if (DEBUG_HEADS_UP) { - Log.d(TAG, "No pulsing: ambient effect suppressed: " + sbn.getKey()); - } + mLogger.logNoPulsingNoAmbientEffect(sbn); return false; } if (entry.getImportance() < NotificationManager.IMPORTANCE_DEFAULT) { - if (DEBUG_HEADS_UP) { - Log.d(TAG, "No pulsing: not important enough: " + sbn.getKey()); - } + mLogger.logNoPulsingNotImportant(sbn); return false; } + mLogger.logPulsing(sbn); return true; } @@ -313,34 +283,25 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter StatusBarNotification sbn = entry.getSbn(); if (mNotificationFilter.shouldFilterOut(entry)) { - if (DEBUG || DEBUG_HEADS_UP) { - Log.d(TAG, "No alerting: filtered notification: " + sbn.getKey()); - } + mLogger.logNoAlertingFilteredOut(sbn); return false; } // Don't alert notifications that are suppressed due to group alert behavior if (sbn.isGroup() && sbn.getNotification().suppressAlertingDueToGrouping()) { - if (DEBUG || DEBUG_HEADS_UP) { - Log.d(TAG, "No alerting: suppressed due to group alert behavior"); - } + mLogger.logNoAlertingGroupAlertBehavior(sbn); return false; } for (int i = 0; i < mSuppressors.size(); i++) { if (mSuppressors.get(i).suppressInterruptions(entry)) { - if (DEBUG_HEADS_UP) { - Log.d(TAG, "No alerting: aborted by suppressor: " - + mSuppressors.get(i).getName() + " sbnKey=" + sbn.getKey()); - } + mLogger.logNoAlertingSuppressedBy(sbn, mSuppressors.get(i), /* awake */ false); return false; } } if (entry.hasJustLaunchedFullScreenIntent()) { - if (DEBUG_HEADS_UP) { - Log.d(TAG, "No alerting: recent fullscreen: " + sbn.getKey()); - } + mLogger.logNoAlertingRecentFullscreen(sbn); return false; } @@ -358,10 +319,7 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter for (int i = 0; i < mSuppressors.size(); i++) { if (mSuppressors.get(i).suppressAwakeInterruptions(entry)) { - if (DEBUG_HEADS_UP) { - Log.d(TAG, "No alerting: aborted by suppressor: " - + mSuppressors.get(i).getName() + " sbnKey=" + sbn.getKey()); - } + mLogger.logNoAlertingSuppressedBy(sbn, mSuppressors.get(i), /* awake */ true); return false; } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImplTest.java index 60c3bc8742355..2e1297b8b9f67 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImplTest.java @@ -81,6 +81,8 @@ public class NotificationInterruptStateProviderImplTest extends SysuiTestCase { @Mock HeadsUpManager mHeadsUpManager; @Mock + NotificationInterruptLogger mLogger; + @Mock BatteryController mBatteryController; @Mock Handler mMockHandler; @@ -101,6 +103,7 @@ public class NotificationInterruptStateProviderImplTest extends SysuiTestCase { mBatteryController, mStatusBarStateController, mHeadsUpManager, + mLogger, mMockHandler); mNotifInterruptionStateProvider.mUseHeadsUp = true; 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 90b93e7974108..a7809c2e9c758 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 @@ -130,6 +130,7 @@ import com.android.systemui.statusbar.notification.collection.legacy.VisualStabi import com.android.systemui.statusbar.notification.collection.render.NotifShadeEventSource; import com.android.systemui.statusbar.notification.collection.render.NotificationVisibilityProvider; import com.android.systemui.statusbar.notification.init.NotificationsController; +import com.android.systemui.statusbar.notification.interruption.NotificationInterruptLogger; import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProviderImpl; import com.android.systemui.statusbar.notification.logging.NotificationLogger; import com.android.systemui.statusbar.notification.logging.NotificationPanelLoggerFake; @@ -309,6 +310,7 @@ public class StatusBarTest extends SysuiTestCase { mPowerManager, mDreamManager, mAmbientDisplayConfiguration, mNotificationFilter, mStatusBarStateController, mBatteryController, mHeadsUpManager, + mock(NotificationInterruptLogger.class), new Handler(TestableLooper.get(this).getLooper())); mContext.addMockSystemService(TrustManager.class, mock(TrustManager.class)); @@ -994,9 +996,10 @@ public class StatusBarTest extends SysuiTestCase { StatusBarStateController controller, BatteryController batteryController, HeadsUpManager headsUpManager, + NotificationInterruptLogger logger, Handler mainHandler) { super(contentResolver, powerManager, dreamManager, ambientDisplayConfiguration, filter, - batteryController, controller, headsUpManager, mainHandler); + batteryController, controller, headsUpManager, logger, mainHandler); mUseHeadsUp = true; } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java b/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java index ca37a40474e0d..4bc4e6ea98f9d 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java @@ -96,6 +96,7 @@ import com.android.systemui.statusbar.notification.collection.NotificationEntryB import com.android.systemui.statusbar.notification.collection.legacy.NotificationGroupManagerLegacy; import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection; import com.android.systemui.statusbar.notification.collection.render.NotificationVisibilityProvider; +import com.android.systemui.statusbar.notification.interruption.NotificationInterruptLogger; import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow; import com.android.systemui.statusbar.notification.row.NotificationTestHelper; import com.android.systemui.statusbar.phone.DozeParameters; @@ -334,6 +335,7 @@ public class BubblesTest extends SysuiTestCase { mock(StatusBarStateController.class), mock(BatteryController.class), mock(HeadsUpManager.class), + mock(NotificationInterruptLogger.class), mock(Handler.class) ); diff --git a/packages/SystemUI/tests/src/com/android/systemui/wmshell/NewNotifPipelineBubblesTest.java b/packages/SystemUI/tests/src/com/android/systemui/wmshell/NewNotifPipelineBubblesTest.java index d82671d6ecb8b..75d8453cb0717 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/wmshell/NewNotifPipelineBubblesTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/wmshell/NewNotifPipelineBubblesTest.java @@ -82,6 +82,7 @@ import com.android.systemui.statusbar.notification.collection.legacy.Notificatio import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection; import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener; import com.android.systemui.statusbar.notification.collection.render.NotificationVisibilityProvider; +import com.android.systemui.statusbar.notification.interruption.NotificationInterruptLogger; import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow; import com.android.systemui.statusbar.notification.row.NotificationTestHelper; import com.android.systemui.statusbar.phone.DozeParameters; @@ -300,6 +301,7 @@ public class NewNotifPipelineBubblesTest extends SysuiTestCase { mock(StatusBarStateController.class), mock(BatteryController.class), mock(HeadsUpManager.class), + mock(NotificationInterruptLogger.class), mock(Handler.class) ); when(mNotifPipelineFlags.isNewPipelineEnabled()).thenReturn(true); diff --git a/packages/SystemUI/tests/src/com/android/systemui/wmshell/TestableNotificationInterruptStateProviderImpl.java b/packages/SystemUI/tests/src/com/android/systemui/wmshell/TestableNotificationInterruptStateProviderImpl.java index 7847c57dbc320..e698f1e7c4cee 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/wmshell/TestableNotificationInterruptStateProviderImpl.java +++ b/packages/SystemUI/tests/src/com/android/systemui/wmshell/TestableNotificationInterruptStateProviderImpl.java @@ -24,6 +24,7 @@ import android.service.dreams.IDreamManager; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.notification.NotificationFilter; +import com.android.systemui.statusbar.notification.interruption.NotificationInterruptLogger; import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProviderImpl; import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.HeadsUpManager; @@ -40,6 +41,7 @@ public class TestableNotificationInterruptStateProviderImpl StatusBarStateController statusBarStateController, BatteryController batteryController, HeadsUpManager headsUpManager, + NotificationInterruptLogger logger, Handler mainHandler) { super(contentResolver, powerManager, @@ -49,6 +51,7 @@ public class TestableNotificationInterruptStateProviderImpl batteryController, statusBarStateController, headsUpManager, + logger, mainHandler); mUseHeadsUp = true; }