Merge "Combine AlertingManager and HeadsUpBindController" into rvc-dev am: b99ef1b146
Change-Id: Ifc9eea730ee1da731a82c5c2815ceb4a1ef6701c
This commit is contained in:
@@ -77,7 +77,6 @@ import com.android.systemui.statusbar.notification.VisualStabilityManager;
|
|||||||
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
||||||
import com.android.systemui.statusbar.notification.init.NotificationsController;
|
import com.android.systemui.statusbar.notification.init.NotificationsController;
|
||||||
import com.android.systemui.statusbar.notification.interruption.BypassHeadsUpNotifier;
|
import com.android.systemui.statusbar.notification.interruption.BypassHeadsUpNotifier;
|
||||||
import com.android.systemui.statusbar.notification.interruption.NotificationAlertingManager;
|
|
||||||
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProvider;
|
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProvider;
|
||||||
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptSuppressor;
|
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptSuppressor;
|
||||||
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
|
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
|
||||||
@@ -170,7 +169,6 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
|
|||||||
NotificationInterruptStateProvider notificationInterruptStateProvider,
|
NotificationInterruptStateProvider notificationInterruptStateProvider,
|
||||||
NotificationViewHierarchyManager notificationViewHierarchyManager,
|
NotificationViewHierarchyManager notificationViewHierarchyManager,
|
||||||
KeyguardViewMediator keyguardViewMediator,
|
KeyguardViewMediator keyguardViewMediator,
|
||||||
NotificationAlertingManager notificationAlertingManager,
|
|
||||||
DisplayMetrics displayMetrics,
|
DisplayMetrics displayMetrics,
|
||||||
MetricsLogger metricsLogger,
|
MetricsLogger metricsLogger,
|
||||||
@UiBackground Executor uiBgExecutor,
|
@UiBackground Executor uiBgExecutor,
|
||||||
@@ -251,7 +249,6 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
|
|||||||
notificationInterruptStateProvider,
|
notificationInterruptStateProvider,
|
||||||
notificationViewHierarchyManager,
|
notificationViewHierarchyManager,
|
||||||
keyguardViewMediator,
|
keyguardViewMediator,
|
||||||
notificationAlertingManager,
|
|
||||||
displayMetrics,
|
displayMetrics,
|
||||||
metricsLogger,
|
metricsLogger,
|
||||||
uiBgExecutor,
|
uiBgExecutor,
|
||||||
|
|||||||
@@ -63,7 +63,6 @@ import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator
|
|||||||
import com.android.systemui.statusbar.notification.VisualStabilityManager;
|
import com.android.systemui.statusbar.notification.VisualStabilityManager;
|
||||||
import com.android.systemui.statusbar.notification.init.NotificationsController;
|
import com.android.systemui.statusbar.notification.init.NotificationsController;
|
||||||
import com.android.systemui.statusbar.notification.interruption.BypassHeadsUpNotifier;
|
import com.android.systemui.statusbar.notification.interruption.BypassHeadsUpNotifier;
|
||||||
import com.android.systemui.statusbar.notification.interruption.NotificationAlertingManager;
|
|
||||||
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProvider;
|
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProvider;
|
||||||
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
|
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
|
||||||
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
|
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
|
||||||
@@ -145,7 +144,6 @@ public class CarStatusBarModule {
|
|||||||
NotificationInterruptStateProvider notificationInterruptionStateProvider,
|
NotificationInterruptStateProvider notificationInterruptionStateProvider,
|
||||||
NotificationViewHierarchyManager notificationViewHierarchyManager,
|
NotificationViewHierarchyManager notificationViewHierarchyManager,
|
||||||
KeyguardViewMediator keyguardViewMediator,
|
KeyguardViewMediator keyguardViewMediator,
|
||||||
NotificationAlertingManager notificationAlertingManager,
|
|
||||||
DisplayMetrics displayMetrics,
|
DisplayMetrics displayMetrics,
|
||||||
MetricsLogger metricsLogger,
|
MetricsLogger metricsLogger,
|
||||||
@UiBackground Executor uiBgExecutor,
|
@UiBackground Executor uiBgExecutor,
|
||||||
@@ -225,7 +223,6 @@ public class CarStatusBarModule {
|
|||||||
notificationInterruptionStateProvider,
|
notificationInterruptionStateProvider,
|
||||||
notificationViewHierarchyManager,
|
notificationViewHierarchyManager,
|
||||||
keyguardViewMediator,
|
keyguardViewMediator,
|
||||||
notificationAlertingManager,
|
|
||||||
displayMetrics,
|
displayMetrics,
|
||||||
metricsLogger,
|
metricsLogger,
|
||||||
uiBgExecutor,
|
uiBgExecutor,
|
||||||
|
|||||||
@@ -75,7 +75,6 @@ import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
|||||||
import com.android.systemui.statusbar.notification.NotificationEntryManager.KeyguardEnvironment;
|
import com.android.systemui.statusbar.notification.NotificationEntryManager.KeyguardEnvironment;
|
||||||
import com.android.systemui.statusbar.notification.NotificationFilter;
|
import com.android.systemui.statusbar.notification.NotificationFilter;
|
||||||
import com.android.systemui.statusbar.notification.VisualStabilityManager;
|
import com.android.systemui.statusbar.notification.VisualStabilityManager;
|
||||||
import com.android.systemui.statusbar.notification.interruption.NotificationAlertingManager;
|
|
||||||
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
|
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
|
||||||
import com.android.systemui.statusbar.notification.row.ChannelEditorDialogController;
|
import com.android.systemui.statusbar.notification.row.ChannelEditorDialogController;
|
||||||
import com.android.systemui.statusbar.notification.row.NotificationBlockingHelperManager;
|
import com.android.systemui.statusbar.notification.row.NotificationBlockingHelperManager;
|
||||||
@@ -293,8 +292,6 @@ public class Dependency {
|
|||||||
@Inject Lazy<RemoteInputQuickSettingsDisabler> mRemoteInputQuickSettingsDisabler;
|
@Inject Lazy<RemoteInputQuickSettingsDisabler> mRemoteInputQuickSettingsDisabler;
|
||||||
@Inject Lazy<BubbleController> mBubbleController;
|
@Inject Lazy<BubbleController> mBubbleController;
|
||||||
@Inject Lazy<NotificationEntryManager> mNotificationEntryManager;
|
@Inject Lazy<NotificationEntryManager> mNotificationEntryManager;
|
||||||
@Inject
|
|
||||||
Lazy<NotificationAlertingManager> mNotificationAlertingManager;
|
|
||||||
@Inject Lazy<SensorPrivacyManager> mSensorPrivacyManager;
|
@Inject Lazy<SensorPrivacyManager> mSensorPrivacyManager;
|
||||||
@Inject Lazy<AutoHideController> mAutoHideController;
|
@Inject Lazy<AutoHideController> mAutoHideController;
|
||||||
@Inject Lazy<ForegroundServiceNotificationListener> mForegroundServiceNotificationListener;
|
@Inject Lazy<ForegroundServiceNotificationListener> mForegroundServiceNotificationListener;
|
||||||
@@ -493,7 +490,6 @@ public class Dependency {
|
|||||||
mRemoteInputQuickSettingsDisabler::get);
|
mRemoteInputQuickSettingsDisabler::get);
|
||||||
mProviders.put(BubbleController.class, mBubbleController::get);
|
mProviders.put(BubbleController.class, mBubbleController::get);
|
||||||
mProviders.put(NotificationEntryManager.class, mNotificationEntryManager::get);
|
mProviders.put(NotificationEntryManager.class, mNotificationEntryManager::get);
|
||||||
mProviders.put(NotificationAlertingManager.class, mNotificationAlertingManager::get);
|
|
||||||
mProviders.put(ForegroundServiceNotificationListener.class,
|
mProviders.put(ForegroundServiceNotificationListener.class,
|
||||||
mForegroundServiceNotificationListener::get);
|
mForegroundServiceNotificationListener::get);
|
||||||
mProviders.put(ClockManager.class, mClockManager::get);
|
mProviders.put(ClockManager.class, mClockManager::get);
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
package com.android.systemui.statusbar.notification.collection.coordinator;
|
package com.android.systemui.statusbar.notification.collection.coordinator;
|
||||||
|
|
||||||
import static com.android.systemui.statusbar.NotificationRemoteInputManager.FORCE_REMOTE_INPUT_HISTORY;
|
import static com.android.systemui.statusbar.NotificationRemoteInputManager.FORCE_REMOTE_INPUT_HISTORY;
|
||||||
import static com.android.systemui.statusbar.notification.interruption.NotificationAlertingManager.alertAgain;
|
import static com.android.systemui.statusbar.notification.interruption.HeadsUpController.alertAgain;
|
||||||
|
|
||||||
import android.annotation.Nullable;
|
import android.annotation.Nullable;
|
||||||
|
|
||||||
@@ -29,7 +29,7 @@ import com.android.systemui.statusbar.notification.collection.listbuilder.plugga
|
|||||||
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSection;
|
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSection;
|
||||||
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener;
|
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener;
|
||||||
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifLifetimeExtender;
|
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifLifetimeExtender;
|
||||||
import com.android.systemui.statusbar.notification.headsup.HeadsUpViewBinder;
|
import com.android.systemui.statusbar.notification.interruption.HeadsUpViewBinder;
|
||||||
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProvider;
|
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProvider;
|
||||||
import com.android.systemui.statusbar.policy.HeadsUpManager;
|
import com.android.systemui.statusbar.policy.HeadsUpManager;
|
||||||
import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener;
|
import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener;
|
||||||
|
|||||||
@@ -46,7 +46,6 @@ import com.android.systemui.statusbar.notification.collection.provider.HighPrior
|
|||||||
import com.android.systemui.statusbar.notification.init.NotificationsController;
|
import com.android.systemui.statusbar.notification.init.NotificationsController;
|
||||||
import com.android.systemui.statusbar.notification.init.NotificationsControllerImpl;
|
import com.android.systemui.statusbar.notification.init.NotificationsControllerImpl;
|
||||||
import com.android.systemui.statusbar.notification.init.NotificationsControllerStub;
|
import com.android.systemui.statusbar.notification.init.NotificationsControllerStub;
|
||||||
import com.android.systemui.statusbar.notification.interruption.NotificationAlertingManager;
|
|
||||||
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProvider;
|
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProvider;
|
||||||
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProviderImpl;
|
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProviderImpl;
|
||||||
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
|
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
|
||||||
@@ -57,7 +56,6 @@ import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
|
|||||||
import com.android.systemui.statusbar.notification.row.PriorityOnboardingDialogController;
|
import com.android.systemui.statusbar.notification.row.PriorityOnboardingDialogController;
|
||||||
import com.android.systemui.statusbar.phone.NotificationGroupManager;
|
import com.android.systemui.statusbar.phone.NotificationGroupManager;
|
||||||
import com.android.systemui.statusbar.phone.StatusBar;
|
import com.android.systemui.statusbar.phone.StatusBar;
|
||||||
import com.android.systemui.statusbar.policy.HeadsUpManager;
|
|
||||||
import com.android.systemui.util.leak.LeakDetector;
|
import com.android.systemui.util.leak.LeakDetector;
|
||||||
|
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
@@ -137,27 +135,6 @@ public interface NotificationsModule {
|
|||||||
return new VisualStabilityManager(notificationEntryManager, handler);
|
return new VisualStabilityManager(notificationEntryManager, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Provides an instance of {@link NotificationAlertingManager} */
|
|
||||||
@Singleton
|
|
||||||
@Provides
|
|
||||||
static NotificationAlertingManager provideNotificationAlertingManager(
|
|
||||||
NotificationEntryManager notificationEntryManager,
|
|
||||||
NotificationRemoteInputManager remoteInputManager,
|
|
||||||
VisualStabilityManager visualStabilityManager,
|
|
||||||
StatusBarStateController statusBarStateController,
|
|
||||||
NotificationInterruptStateProvider notificationInterruptStateProvider,
|
|
||||||
NotificationListener notificationListener,
|
|
||||||
HeadsUpManager headsUpManager) {
|
|
||||||
return new NotificationAlertingManager(
|
|
||||||
notificationEntryManager,
|
|
||||||
remoteInputManager,
|
|
||||||
visualStabilityManager,
|
|
||||||
statusBarStateController,
|
|
||||||
notificationInterruptStateProvider,
|
|
||||||
notificationListener,
|
|
||||||
headsUpManager);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Provides an instance of {@link NotificationLogger} */
|
/** Provides an instance of {@link NotificationLogger} */
|
||||||
@Singleton
|
@Singleton
|
||||||
@Provides
|
@Provides
|
||||||
|
|||||||
@@ -1,95 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2020 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.headsup;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
|
|
||||||
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
|
||||||
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
|
||||||
import com.android.systemui.statusbar.notification.collection.coordinator.HeadsUpCoordinator;
|
|
||||||
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener;
|
|
||||||
import com.android.systemui.statusbar.notification.interruption.NotificationAlertingManager;
|
|
||||||
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProvider;
|
|
||||||
import com.android.systemui.statusbar.policy.HeadsUpManager;
|
|
||||||
import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import javax.inject.Singleton;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Controller class for old pipeline heads up view binding. It listens to
|
|
||||||
* {@link NotificationEntryManager} entry events and appropriately binds or unbinds the heads up
|
|
||||||
* view.
|
|
||||||
*
|
|
||||||
* This has a subtle contract with {@link NotificationAlertingManager} where this controller handles
|
|
||||||
* the heads up binding, but {@link NotificationAlertingManager} listens for general inflation
|
|
||||||
* events to actually mark it heads up/update. In the new pipeline, we combine the classes.
|
|
||||||
* See {@link HeadsUpCoordinator}.
|
|
||||||
*/
|
|
||||||
@Singleton
|
|
||||||
public class HeadsUpBindController {
|
|
||||||
private final HeadsUpViewBinder mHeadsUpViewBinder;
|
|
||||||
private final NotificationInterruptStateProvider mInterruptStateProvider;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
HeadsUpBindController(
|
|
||||||
HeadsUpViewBinder headsUpViewBinder,
|
|
||||||
NotificationInterruptStateProvider notificationInterruptStateProvider) {
|
|
||||||
mInterruptStateProvider = notificationInterruptStateProvider;
|
|
||||||
mHeadsUpViewBinder = headsUpViewBinder;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Attach this controller and add its listeners.
|
|
||||||
*/
|
|
||||||
public void attach(
|
|
||||||
NotificationEntryManager entryManager,
|
|
||||||
HeadsUpManager headsUpManager) {
|
|
||||||
entryManager.addCollectionListener(mCollectionListener);
|
|
||||||
headsUpManager.addListener(mOnHeadsUpChangedListener);
|
|
||||||
}
|
|
||||||
|
|
||||||
private NotifCollectionListener mCollectionListener = new NotifCollectionListener() {
|
|
||||||
@Override
|
|
||||||
public void onEntryAdded(NotificationEntry entry) {
|
|
||||||
if (mInterruptStateProvider.shouldHeadsUp(entry)) {
|
|
||||||
mHeadsUpViewBinder.bindHeadsUpView(entry, null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onEntryUpdated(NotificationEntry entry) {
|
|
||||||
if (mInterruptStateProvider.shouldHeadsUp(entry)) {
|
|
||||||
mHeadsUpViewBinder.bindHeadsUpView(entry, null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onEntryCleanUp(NotificationEntry entry) {
|
|
||||||
mHeadsUpViewBinder.abortBindCallback(entry);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
private OnHeadsUpChangedListener mOnHeadsUpChangedListener = new OnHeadsUpChangedListener() {
|
|
||||||
@Override
|
|
||||||
public void onHeadsUpStateChanged(@NonNull NotificationEntry entry, boolean isHeadsUp) {
|
|
||||||
if (!isHeadsUp) {
|
|
||||||
mHeadsUpViewBinder.unbindHeadsUpView(entry);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -28,7 +28,7 @@ import com.android.systemui.statusbar.notification.NotificationEntryManager
|
|||||||
import com.android.systemui.statusbar.notification.NotificationListController
|
import com.android.systemui.statusbar.notification.NotificationListController
|
||||||
import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinderImpl
|
import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinderImpl
|
||||||
import com.android.systemui.statusbar.notification.collection.init.NotifPipelineInitializer
|
import com.android.systemui.statusbar.notification.collection.init.NotifPipelineInitializer
|
||||||
import com.android.systemui.statusbar.notification.headsup.HeadsUpBindController
|
import com.android.systemui.statusbar.notification.interruption.HeadsUpController
|
||||||
import com.android.systemui.statusbar.notification.row.NotifBindPipelineInitializer
|
import com.android.systemui.statusbar.notification.row.NotifBindPipelineInitializer
|
||||||
import com.android.systemui.statusbar.notification.stack.NotificationListContainer
|
import com.android.systemui.statusbar.notification.stack.NotificationListContainer
|
||||||
import com.android.systemui.statusbar.phone.NotificationGroupAlertTransferHelper
|
import com.android.systemui.statusbar.phone.NotificationGroupAlertTransferHelper
|
||||||
@@ -36,7 +36,7 @@ import com.android.systemui.statusbar.phone.NotificationGroupManager
|
|||||||
import com.android.systemui.statusbar.phone.StatusBar
|
import com.android.systemui.statusbar.phone.StatusBar
|
||||||
import com.android.systemui.statusbar.policy.DeviceProvisionedController
|
import com.android.systemui.statusbar.policy.DeviceProvisionedController
|
||||||
import com.android.systemui.statusbar.policy.HeadsUpManager
|
import com.android.systemui.statusbar.policy.HeadsUpManager
|
||||||
import com.android.systemui.statusbar.notification.headsup.HeadsUpViewBinder
|
import com.android.systemui.statusbar.notification.interruption.HeadsUpViewBinder
|
||||||
import com.android.systemui.statusbar.policy.RemoteInputUriController
|
import com.android.systemui.statusbar.policy.RemoteInputUriController
|
||||||
import dagger.Lazy
|
import dagger.Lazy
|
||||||
import java.io.FileDescriptor
|
import java.io.FileDescriptor
|
||||||
@@ -66,7 +66,7 @@ class NotificationsControllerImpl @Inject constructor(
|
|||||||
private val groupManager: NotificationGroupManager,
|
private val groupManager: NotificationGroupManager,
|
||||||
private val groupAlertTransferHelper: NotificationGroupAlertTransferHelper,
|
private val groupAlertTransferHelper: NotificationGroupAlertTransferHelper,
|
||||||
private val headsUpManager: HeadsUpManager,
|
private val headsUpManager: HeadsUpManager,
|
||||||
private val headsUpBindController: HeadsUpBindController,
|
private val headsUpController: HeadsUpController,
|
||||||
private val headsUpViewBinder: HeadsUpViewBinder
|
private val headsUpViewBinder: HeadsUpViewBinder
|
||||||
) : NotificationsController {
|
) : NotificationsController {
|
||||||
|
|
||||||
@@ -112,7 +112,7 @@ class NotificationsControllerImpl @Inject constructor(
|
|||||||
groupAlertTransferHelper.bind(entryManager, groupManager)
|
groupAlertTransferHelper.bind(entryManager, groupManager)
|
||||||
headsUpManager.addListener(groupManager)
|
headsUpManager.addListener(groupManager)
|
||||||
headsUpManager.addListener(groupAlertTransferHelper)
|
headsUpManager.addListener(groupAlertTransferHelper)
|
||||||
headsUpBindController.attach(entryManager, headsUpManager)
|
headsUpController.attach(entryManager, headsUpManager)
|
||||||
groupManager.setHeadsUpManager(headsUpManager)
|
groupManager.setHeadsUpManager(headsUpManager)
|
||||||
groupAlertTransferHelper.setHeadsUpManager(headsUpManager)
|
groupAlertTransferHelper.setHeadsUpManager(headsUpManager)
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2018 The Android Open Source Project
|
* Copyright (C) 2020 The Android Open Source Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -22,101 +22,140 @@ import android.app.Notification;
|
|||||||
import android.service.notification.StatusBarNotification;
|
import android.service.notification.StatusBarNotification;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.android.internal.statusbar.NotificationVisibility;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||||
import com.android.systemui.statusbar.NotificationListener;
|
import com.android.systemui.statusbar.NotificationListener;
|
||||||
import com.android.systemui.statusbar.NotificationRemoteInputManager;
|
import com.android.systemui.statusbar.NotificationRemoteInputManager;
|
||||||
import com.android.systemui.statusbar.notification.NotificationEntryListener;
|
|
||||||
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
||||||
import com.android.systemui.statusbar.notification.VisualStabilityManager;
|
import com.android.systemui.statusbar.notification.VisualStabilityManager;
|
||||||
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
||||||
import com.android.systemui.statusbar.notification.dagger.NotificationsModule;
|
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener;
|
||||||
import com.android.systemui.statusbar.policy.HeadsUpManager;
|
import com.android.systemui.statusbar.policy.HeadsUpManager;
|
||||||
|
import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener;
|
||||||
|
|
||||||
/** Handles heads-up and pulsing behavior driven by notification changes. */
|
import javax.inject.Inject;
|
||||||
public class NotificationAlertingManager {
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
private static final String TAG = "NotifAlertManager";
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Controller class for old pipeline heads up logic. It listens to {@link NotificationEntryManager}
|
||||||
|
* entry events and appropriately binds or unbinds the heads up view and promotes it to the top
|
||||||
|
* of the screen.
|
||||||
|
*/
|
||||||
|
@Singleton
|
||||||
|
public class HeadsUpController {
|
||||||
|
private final HeadsUpViewBinder mHeadsUpViewBinder;
|
||||||
|
private final NotificationInterruptStateProvider mInterruptStateProvider;
|
||||||
private final NotificationRemoteInputManager mRemoteInputManager;
|
private final NotificationRemoteInputManager mRemoteInputManager;
|
||||||
private final VisualStabilityManager mVisualStabilityManager;
|
private final VisualStabilityManager mVisualStabilityManager;
|
||||||
private final StatusBarStateController mStatusBarStateController;
|
private final StatusBarStateController mStatusBarStateController;
|
||||||
private final NotificationInterruptStateProvider mNotificationInterruptStateProvider;
|
|
||||||
private final NotificationListener mNotificationListener;
|
private final NotificationListener mNotificationListener;
|
||||||
|
private final HeadsUpManager mHeadsUpManager;
|
||||||
|
|
||||||
private HeadsUpManager mHeadsUpManager;
|
@Inject
|
||||||
|
HeadsUpController(
|
||||||
/**
|
HeadsUpViewBinder headsUpViewBinder,
|
||||||
* Injected constructor. See {@link NotificationsModule}.
|
NotificationInterruptStateProvider notificationInterruptStateProvider,
|
||||||
*/
|
HeadsUpManager headsUpManager,
|
||||||
public NotificationAlertingManager(
|
|
||||||
NotificationEntryManager notificationEntryManager,
|
|
||||||
NotificationRemoteInputManager remoteInputManager,
|
NotificationRemoteInputManager remoteInputManager,
|
||||||
VisualStabilityManager visualStabilityManager,
|
|
||||||
StatusBarStateController statusBarStateController,
|
StatusBarStateController statusBarStateController,
|
||||||
NotificationInterruptStateProvider notificationInterruptionStateProvider,
|
VisualStabilityManager visualStabilityManager,
|
||||||
NotificationListener notificationListener,
|
NotificationListener notificationListener) {
|
||||||
HeadsUpManager headsUpManager) {
|
mHeadsUpViewBinder = headsUpViewBinder;
|
||||||
mRemoteInputManager = remoteInputManager;
|
|
||||||
mVisualStabilityManager = visualStabilityManager;
|
|
||||||
mStatusBarStateController = statusBarStateController;
|
|
||||||
mNotificationInterruptStateProvider = notificationInterruptionStateProvider;
|
|
||||||
mNotificationListener = notificationListener;
|
|
||||||
mHeadsUpManager = headsUpManager;
|
mHeadsUpManager = headsUpManager;
|
||||||
|
mInterruptStateProvider = notificationInterruptStateProvider;
|
||||||
notificationEntryManager.addNotificationEntryListener(new NotificationEntryListener() {
|
mRemoteInputManager = remoteInputManager;
|
||||||
@Override
|
mStatusBarStateController = statusBarStateController;
|
||||||
public void onEntryInflated(NotificationEntry entry) {
|
mVisualStabilityManager = visualStabilityManager;
|
||||||
showAlertingView(entry);
|
mNotificationListener = notificationListener;
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPreEntryUpdated(NotificationEntry entry) {
|
|
||||||
updateAlertState(entry);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onEntryRemoved(
|
|
||||||
NotificationEntry entry,
|
|
||||||
NotificationVisibility visibility,
|
|
||||||
boolean removedByUser,
|
|
||||||
int reason) {
|
|
||||||
stopAlerting(entry.getKey());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds the entry to the respective alerting manager if the content view was inflated and
|
* Attach this controller and add its listeners.
|
||||||
* the entry should still alert.
|
*/
|
||||||
|
public void attach(
|
||||||
|
NotificationEntryManager entryManager,
|
||||||
|
HeadsUpManager headsUpManager) {
|
||||||
|
entryManager.addCollectionListener(mCollectionListener);
|
||||||
|
headsUpManager.addListener(mOnHeadsUpChangedListener);
|
||||||
|
}
|
||||||
|
|
||||||
|
private NotifCollectionListener mCollectionListener = new NotifCollectionListener() {
|
||||||
|
@Override
|
||||||
|
public void onEntryAdded(NotificationEntry entry) {
|
||||||
|
if (mInterruptStateProvider.shouldHeadsUp(entry)) {
|
||||||
|
mHeadsUpViewBinder.bindHeadsUpView(
|
||||||
|
entry, HeadsUpController.this::showAlertingView);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onEntryUpdated(NotificationEntry entry) {
|
||||||
|
updateHunState(entry);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onEntryRemoved(NotificationEntry entry, int reason) {
|
||||||
|
stopAlerting(entry);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onEntryCleanUp(NotificationEntry entry) {
|
||||||
|
mHeadsUpViewBinder.abortBindCallback(entry);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds the entry to the HUN manager and show it for the first time.
|
||||||
*/
|
*/
|
||||||
private void showAlertingView(NotificationEntry entry) {
|
private void showAlertingView(NotificationEntry entry) {
|
||||||
// TODO: Instead of this back and forth, we should listen to changes in heads up and
|
mHeadsUpManager.showNotification(entry);
|
||||||
// cancel on-going heads up view inflation using the bind pipeline.
|
if (!mStatusBarStateController.isDozing()) {
|
||||||
if (entry.getRow().getPrivateLayout().getHeadsUpChild() != null) {
|
// Mark as seen immediately
|
||||||
mHeadsUpManager.showNotification(entry);
|
setNotificationShown(entry.getSbn());
|
||||||
if (!mStatusBarStateController.isDozing()) {
|
|
||||||
// Mark as seen immediately
|
|
||||||
setNotificationShown(entry.getSbn());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateAlertState(NotificationEntry entry) {
|
private void updateHunState(NotificationEntry entry) {
|
||||||
boolean alertAgain = alertAgain(entry, entry.getSbn().getNotification());
|
boolean hunAgain = alertAgain(entry, entry.getSbn().getNotification());
|
||||||
// includes check for whether this notification should be filtered:
|
// includes check for whether this notification should be filtered:
|
||||||
boolean shouldAlert = mNotificationInterruptStateProvider.shouldHeadsUp(entry);
|
boolean shouldHeadsUp = mInterruptStateProvider.shouldHeadsUp(entry);
|
||||||
final boolean wasAlerting = mHeadsUpManager.isAlerting(entry.getKey());
|
final boolean wasHeadsUp = mHeadsUpManager.isAlerting(entry.getKey());
|
||||||
if (wasAlerting) {
|
if (wasHeadsUp) {
|
||||||
if (shouldAlert) {
|
if (shouldHeadsUp) {
|
||||||
mHeadsUpManager.updateNotification(entry.getKey(), alertAgain);
|
mHeadsUpManager.updateNotification(entry.getKey(), hunAgain);
|
||||||
} else if (!mHeadsUpManager.isEntryAutoHeadsUpped(entry.getKey())) {
|
} else if (!mHeadsUpManager.isEntryAutoHeadsUpped(entry.getKey())) {
|
||||||
// We don't want this to be interrupting anymore, let's remove it
|
// We don't want this to be interrupting anymore, let's remove it
|
||||||
mHeadsUpManager.removeNotification(entry.getKey(), false /* removeImmediately */);
|
mHeadsUpManager.removeNotification(entry.getKey(), false /* removeImmediately */);
|
||||||
}
|
}
|
||||||
} else if (shouldAlert && alertAgain) {
|
} else if (shouldHeadsUp && hunAgain) {
|
||||||
// This notification was updated to be alerting, show it!
|
mHeadsUpViewBinder.bindHeadsUpView(entry, mHeadsUpManager::showNotification);
|
||||||
mHeadsUpManager.showNotification(entry);
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setNotificationShown(StatusBarNotification n) {
|
||||||
|
try {
|
||||||
|
mNotificationListener.setNotificationsShown(new String[]{n.getKey()});
|
||||||
|
} catch (RuntimeException e) {
|
||||||
|
Log.d(TAG, "failed setNotificationsShown: ", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void stopAlerting(NotificationEntry entry) {
|
||||||
|
// Attempt to remove notifications from their HUN manager.
|
||||||
|
// Though the remove itself may fail, it lets the manager know to remove as soon as
|
||||||
|
// possible.
|
||||||
|
String key = entry.getKey();
|
||||||
|
if (mHeadsUpManager.isAlerting(key)) {
|
||||||
|
// A cancel() in response to a remote input shouldn't be delayed, as it makes the
|
||||||
|
// sending look longer than it takes.
|
||||||
|
// Also we should not defer the removal if reordering isn't allowed since otherwise
|
||||||
|
// some notifications can't disappear before the panel is closed.
|
||||||
|
boolean ignoreEarliestRemovalTime =
|
||||||
|
mRemoteInputManager.getController().isSpinning(key)
|
||||||
|
&& !FORCE_REMOTE_INPUT_HISTORY
|
||||||
|
|| !mVisualStabilityManager.isReorderingAllowed();
|
||||||
|
mHeadsUpManager.removeNotification(key, ignoreEarliestRemovalTime);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,28 +172,14 @@ public class NotificationAlertingManager {
|
|||||||
|| (newNotification.flags & Notification.FLAG_ONLY_ALERT_ONCE) == 0;
|
|| (newNotification.flags & Notification.FLAG_ONLY_ALERT_ONCE) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setNotificationShown(StatusBarNotification n) {
|
private OnHeadsUpChangedListener mOnHeadsUpChangedListener = new OnHeadsUpChangedListener() {
|
||||||
try {
|
@Override
|
||||||
mNotificationListener.setNotificationsShown(new String[]{n.getKey()});
|
public void onHeadsUpStateChanged(@NonNull NotificationEntry entry, boolean isHeadsUp) {
|
||||||
} catch (RuntimeException e) {
|
if (!isHeadsUp) {
|
||||||
Log.d(TAG, "failed setNotificationsShown: ", e);
|
mHeadsUpViewBinder.unbindHeadsUpView(entry);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
private void stopAlerting(final String key) {
|
private static final String TAG = "HeadsUpBindController";
|
||||||
// Attempt to remove notifications from their alert manager.
|
|
||||||
// Though the remove itself may fail, it lets the manager know to remove as soon as
|
|
||||||
// possible.
|
|
||||||
if (mHeadsUpManager.isAlerting(key)) {
|
|
||||||
// A cancel() in response to a remote input shouldn't be delayed, as it makes the
|
|
||||||
// sending look longer than it takes.
|
|
||||||
// Also we should not defer the removal if reordering isn't allowed since otherwise
|
|
||||||
// some notifications can't disappear before the panel is closed.
|
|
||||||
boolean ignoreEarliestRemovalTime =
|
|
||||||
mRemoteInputManager.getController().isSpinning(key)
|
|
||||||
&& !FORCE_REMOTE_INPUT_HISTORY
|
|
||||||
|| !mVisualStabilityManager.isReorderingAllowed();
|
|
||||||
mHeadsUpManager.removeNotification(key, ignoreEarliestRemovalTime);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.systemui.statusbar.notification.headsup;
|
package com.android.systemui.statusbar.notification.interruption;
|
||||||
|
|
||||||
import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.FLAG_CONTENT_VIEW_HEADS_UP;
|
import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.FLAG_CONTENT_VIEW_HEADS_UP;
|
||||||
|
|
||||||
@@ -42,7 +42,7 @@ import javax.inject.Singleton;
|
|||||||
* content view.
|
* content view.
|
||||||
*
|
*
|
||||||
* TODO: This should be moved into {@link HeadsUpCoordinator} when the old pipeline is deprecated
|
* TODO: This should be moved into {@link HeadsUpCoordinator} when the old pipeline is deprecated
|
||||||
* (i.e. when {@link HeadsUpBindController} is removed).
|
* (i.e. when {@link HeadsUpController} is removed).
|
||||||
*/
|
*/
|
||||||
@Singleton
|
@Singleton
|
||||||
public class HeadsUpViewBinder {
|
public class HeadsUpViewBinder {
|
||||||
@@ -193,7 +193,6 @@ import com.android.systemui.statusbar.notification.VisualStabilityManager;
|
|||||||
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
||||||
import com.android.systemui.statusbar.notification.init.NotificationsController;
|
import com.android.systemui.statusbar.notification.init.NotificationsController;
|
||||||
import com.android.systemui.statusbar.notification.interruption.BypassHeadsUpNotifier;
|
import com.android.systemui.statusbar.notification.interruption.BypassHeadsUpNotifier;
|
||||||
import com.android.systemui.statusbar.notification.interruption.NotificationAlertingManager;
|
|
||||||
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProvider;
|
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProvider;
|
||||||
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
|
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
|
||||||
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
|
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
|
||||||
@@ -623,7 +622,6 @@ public class StatusBar extends SystemUI implements DemoMode,
|
|||||||
NotificationInterruptStateProvider notificationInterruptStateProvider,
|
NotificationInterruptStateProvider notificationInterruptStateProvider,
|
||||||
NotificationViewHierarchyManager notificationViewHierarchyManager,
|
NotificationViewHierarchyManager notificationViewHierarchyManager,
|
||||||
KeyguardViewMediator keyguardViewMediator,
|
KeyguardViewMediator keyguardViewMediator,
|
||||||
NotificationAlertingManager notificationAlertingManager, // need to inject for now
|
|
||||||
DisplayMetrics displayMetrics,
|
DisplayMetrics displayMetrics,
|
||||||
MetricsLogger metricsLogger,
|
MetricsLogger metricsLogger,
|
||||||
@UiBackground Executor uiBgExecutor,
|
@UiBackground Executor uiBgExecutor,
|
||||||
|
|||||||
@@ -62,7 +62,6 @@ import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator
|
|||||||
import com.android.systemui.statusbar.notification.VisualStabilityManager;
|
import com.android.systemui.statusbar.notification.VisualStabilityManager;
|
||||||
import com.android.systemui.statusbar.notification.init.NotificationsController;
|
import com.android.systemui.statusbar.notification.init.NotificationsController;
|
||||||
import com.android.systemui.statusbar.notification.interruption.BypassHeadsUpNotifier;
|
import com.android.systemui.statusbar.notification.interruption.BypassHeadsUpNotifier;
|
||||||
import com.android.systemui.statusbar.notification.interruption.NotificationAlertingManager;
|
|
||||||
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProvider;
|
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProvider;
|
||||||
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
|
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
|
||||||
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
|
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
|
||||||
@@ -143,7 +142,6 @@ public interface StatusBarPhoneModule {
|
|||||||
NotificationInterruptStateProvider notificationInterruptStateProvider,
|
NotificationInterruptStateProvider notificationInterruptStateProvider,
|
||||||
NotificationViewHierarchyManager notificationViewHierarchyManager,
|
NotificationViewHierarchyManager notificationViewHierarchyManager,
|
||||||
KeyguardViewMediator keyguardViewMediator,
|
KeyguardViewMediator keyguardViewMediator,
|
||||||
NotificationAlertingManager notificationAlertingManager,
|
|
||||||
DisplayMetrics displayMetrics,
|
DisplayMetrics displayMetrics,
|
||||||
MetricsLogger metricsLogger,
|
MetricsLogger metricsLogger,
|
||||||
@UiBackground Executor uiBgExecutor,
|
@UiBackground Executor uiBgExecutor,
|
||||||
@@ -223,7 +221,6 @@ public interface StatusBarPhoneModule {
|
|||||||
notificationInterruptStateProvider,
|
notificationInterruptStateProvider,
|
||||||
notificationViewHierarchyManager,
|
notificationViewHierarchyManager,
|
||||||
keyguardViewMediator,
|
keyguardViewMediator,
|
||||||
notificationAlertingManager,
|
|
||||||
displayMetrics,
|
displayMetrics,
|
||||||
metricsLogger,
|
metricsLogger,
|
||||||
uiBgExecutor,
|
uiBgExecutor,
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ import com.android.systemui.statusbar.notification.collection.listbuilder.plugga
|
|||||||
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSection;
|
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSection;
|
||||||
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener;
|
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener;
|
||||||
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifLifetimeExtender;
|
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifLifetimeExtender;
|
||||||
import com.android.systemui.statusbar.notification.headsup.HeadsUpViewBinder;
|
import com.android.systemui.statusbar.notification.interruption.HeadsUpViewBinder;
|
||||||
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProvider;
|
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProvider;
|
||||||
import com.android.systemui.statusbar.notification.row.NotifBindPipeline.BindCallback;
|
import com.android.systemui.statusbar.notification.row.NotifBindPipeline.BindCallback;
|
||||||
import com.android.systemui.statusbar.policy.HeadsUpManager;
|
import com.android.systemui.statusbar.policy.HeadsUpManager;
|
||||||
|
|||||||
@@ -120,7 +120,6 @@ import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
|||||||
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
|
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
|
||||||
import com.android.systemui.statusbar.notification.init.NotificationsController;
|
import com.android.systemui.statusbar.notification.init.NotificationsController;
|
||||||
import com.android.systemui.statusbar.notification.interruption.BypassHeadsUpNotifier;
|
import com.android.systemui.statusbar.notification.interruption.BypassHeadsUpNotifier;
|
||||||
import com.android.systemui.statusbar.notification.interruption.NotificationAlertingManager;
|
|
||||||
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProviderImpl;
|
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProviderImpl;
|
||||||
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
|
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
|
||||||
import com.android.systemui.statusbar.notification.logging.NotificationPanelLoggerFake;
|
import com.android.systemui.statusbar.notification.logging.NotificationPanelLoggerFake;
|
||||||
@@ -193,7 +192,6 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
@Mock private StatusBarNotificationPresenter mNotificationPresenter;
|
@Mock private StatusBarNotificationPresenter mNotificationPresenter;
|
||||||
@Mock private NotificationEntryListener mEntryListener;
|
@Mock private NotificationEntryListener mEntryListener;
|
||||||
@Mock private NotificationFilter mNotificationFilter;
|
@Mock private NotificationFilter mNotificationFilter;
|
||||||
@Mock private NotificationAlertingManager mNotificationAlertingManager;
|
|
||||||
@Mock private AmbientDisplayConfiguration mAmbientDisplayConfiguration;
|
@Mock private AmbientDisplayConfiguration mAmbientDisplayConfiguration;
|
||||||
@Mock private NotificationLogger.ExpansionStateLogger mExpansionStateLogger;
|
@Mock private NotificationLogger.ExpansionStateLogger mExpansionStateLogger;
|
||||||
@Mock private KeyguardUpdateMonitor mKeyguardUpdateMonitor;
|
@Mock private KeyguardUpdateMonitor mKeyguardUpdateMonitor;
|
||||||
@@ -352,7 +350,6 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
mNotificationInterruptStateProvider,
|
mNotificationInterruptStateProvider,
|
||||||
mNotificationViewHierarchyManager,
|
mNotificationViewHierarchyManager,
|
||||||
mKeyguardViewMediator,
|
mKeyguardViewMediator,
|
||||||
mNotificationAlertingManager,
|
|
||||||
new DisplayMetrics(),
|
new DisplayMetrics(),
|
||||||
mMetricsLogger,
|
mMetricsLogger,
|
||||||
mUiBgExecutor,
|
mUiBgExecutor,
|
||||||
|
|||||||
Reference in New Issue
Block a user