Loading packages/CarSystemUI/src/com/android/systemui/CarSystemUIModule.java +6 −0 Original line number Original line Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.content.Context; import com.android.keyguard.KeyguardViewController; import com.android.keyguard.KeyguardViewController; import com.android.systemui.car.CarDeviceProvisionedController; import com.android.systemui.car.CarDeviceProvisionedController; import com.android.systemui.car.CarDeviceProvisionedControllerImpl; import com.android.systemui.car.CarDeviceProvisionedControllerImpl; import com.android.systemui.car.CarNotificationInterruptionStateProvider; import com.android.systemui.dagger.SystemUIRootComponent; import com.android.systemui.dagger.SystemUIRootComponent; import com.android.systemui.dock.DockManager; import com.android.systemui.dock.DockManager; import com.android.systemui.dock.DockManagerImpl; import com.android.systemui.dock.DockManagerImpl; Loading @@ -40,6 +41,7 @@ import com.android.systemui.statusbar.car.CarShadeControllerImpl; import com.android.systemui.statusbar.car.CarStatusBar; import com.android.systemui.statusbar.car.CarStatusBar; import com.android.systemui.statusbar.car.CarStatusBarKeyguardViewManager; import com.android.systemui.statusbar.car.CarStatusBarKeyguardViewManager; import com.android.systemui.statusbar.notification.NotificationEntryManager; import com.android.systemui.statusbar.notification.NotificationEntryManager; import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider; import com.android.systemui.statusbar.phone.HeadsUpManagerPhone; import com.android.systemui.statusbar.phone.HeadsUpManagerPhone; import com.android.systemui.statusbar.phone.KeyguardBypassController; import com.android.systemui.statusbar.phone.KeyguardBypassController; import com.android.systemui.statusbar.phone.KeyguardEnvironmentImpl; import com.android.systemui.statusbar.phone.KeyguardEnvironmentImpl; Loading @@ -63,6 +65,10 @@ import dagger.Provides; @Module(includes = {DividerModule.class}) @Module(includes = {DividerModule.class}) abstract class CarSystemUIModule { abstract class CarSystemUIModule { @Binds abstract NotificationInterruptionStateProvider bindNotificationInterruptionStateProvider( CarNotificationInterruptionStateProvider notificationInterruptionStateProvider); @Singleton @Singleton @Provides @Provides @Named(ALLOW_NOTIFICATION_LONG_PRESS_NAME) @Named(ALLOW_NOTIFICATION_LONG_PRESS_NAME) Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProvider.java→packages/CarSystemUI/src/com/android/systemui/car/CarNotificationInterruptionStateProvider.java +54 −0 Original line number Original line Diff line number Diff line /* /* * Copyright (C) 2020 The Android Open Source Project * Copyright (C) 2018 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. Loading @@ -14,46 +14,41 @@ * limitations under the License. * limitations under the License. */ */ package com.android.systemui.statusbar.notification.interruption; package com.android.systemui.car; import android.content.Context; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.notification.NotificationFilter; import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider; import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.policy.BatteryController; /** import javax.inject.Inject; * Provides bubble-up and heads-up state for notification entries. import javax.inject.Singleton; * * When a notification is heads-up when dozing, this is also called "pulsing." */ public interface NotificationInterruptStateProvider { /** * If the device is awake (not dozing): * Whether the notification should peek in from the top and alert the user. * * If the device is dozing: * Whether the notification should show the ambient view of the notification ("pulse"). * * @param entry the entry to check * @return true if the entry should heads up, false otherwise */ boolean shouldHeadsUp(NotificationEntry entry); /** /** Auto-specific implementation of {@link NotificationInterruptionStateProvider}. */ * Whether the notification should appear as a bubble with a fly-out on top of the screen. @Singleton * public class CarNotificationInterruptionStateProvider extends * @param entry the entry to check NotificationInterruptionStateProvider { * @return true if the entry should bubble up, false otherwise */ boolean shouldBubbleUp(NotificationEntry entry); /** @Inject * Whether to launch the entry's full screen intent when the entry is added. public CarNotificationInterruptionStateProvider(Context context, * NotificationFilter filter, * @param entry the entry that was added StatusBarStateController stateController, * @return {@code true} if we should launch the full screen intent BatteryController batteryController) { */ super(context, filter, stateController, batteryController); boolean shouldLaunchFullScreenIntentWhenAdded(NotificationEntry entry); } /** @Override * Add a component that can suppress visual interruptions. public boolean shouldHeadsUp(NotificationEntry entry) { */ // Because space is usually constrained in the auto use-case, there should not be a void addSuppressor(NotificationInterruptSuppressor suppressor); // pinned notification when the shade has been expanded. Ensure this by not pinning any // notification if the shade is already opened. if (!getPresenter().isPresenterFullyCollapsed()) { return false; } return super.shouldHeadsUp(entry); } } } packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java +7 −22 Original line number Original line Diff line number Diff line Loading @@ -95,14 +95,13 @@ import com.android.systemui.statusbar.PulseExpansionHandler; import com.android.systemui.statusbar.SuperStatusBarViewFactory; import com.android.systemui.statusbar.SuperStatusBarViewFactory; import com.android.systemui.statusbar.SysuiStatusBarStateController; import com.android.systemui.statusbar.SysuiStatusBarStateController; import com.android.systemui.statusbar.VibratorHelper; import com.android.systemui.statusbar.VibratorHelper; import com.android.systemui.statusbar.notification.BypassHeadsUpNotifier; import com.android.systemui.statusbar.notification.DynamicPrivacyController; import com.android.systemui.statusbar.notification.DynamicPrivacyController; import com.android.systemui.statusbar.notification.NotificationAlertingManager; import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider; import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator; 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.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.NotificationInterruptStateProvider; import com.android.systemui.statusbar.notification.interruption.NotificationInterruptSuppressor; 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; import com.android.systemui.statusbar.phone.AutoHideController; import com.android.systemui.statusbar.phone.AutoHideController; Loading Loading @@ -250,9 +249,10 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt RemoteInputQuickSettingsDisabler remoteInputQuickSettingsDisabler, RemoteInputQuickSettingsDisabler remoteInputQuickSettingsDisabler, NotificationGutsManager notificationGutsManager, NotificationGutsManager notificationGutsManager, NotificationLogger notificationLogger, NotificationLogger notificationLogger, NotificationInterruptStateProvider notificationInterruptStateProvider, NotificationInterruptionStateProvider 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, Loading Loading @@ -335,9 +335,10 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt remoteInputQuickSettingsDisabler, remoteInputQuickSettingsDisabler, notificationGutsManager, notificationGutsManager, notificationLogger, notificationLogger, notificationInterruptStateProvider, notificationInterruptionStateProvider, notificationViewHierarchyManager, notificationViewHierarchyManager, keyguardViewMediator, keyguardViewMediator, notificationAlertingManager, displayMetrics, displayMetrics, metricsLogger, metricsLogger, uiBgExecutor, uiBgExecutor, Loading Loading @@ -487,22 +488,6 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt .isCurrentUserSetupInProgress(); .isCurrentUserSetupInProgress(); } } }); }); mNotificationInterruptStateProvider.addSuppressor(new NotificationInterruptSuppressor() { @Override public String getName() { return TAG; } @Override public boolean suppressInterruptions(NotificationEntry entry) { // Because space is usually constrained in the auto use-case, there should not be a // pinned notification when the shade has been expanded. // Ensure this by not allowing any interruptions (ie: pinning any notifications) if // the shade is already opened. return !getPresenter().isPresenterFullyCollapsed(); } }); } } @Override @Override Loading packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarModule.java +6 −3 Original line number Original line Diff line number Diff line Loading @@ -62,12 +62,13 @@ import com.android.systemui.statusbar.SuperStatusBarViewFactory; import com.android.systemui.statusbar.SysuiStatusBarStateController; import com.android.systemui.statusbar.SysuiStatusBarStateController; import com.android.systemui.statusbar.VibratorHelper; import com.android.systemui.statusbar.VibratorHelper; import com.android.systemui.statusbar.dagger.StatusBarDependenciesModule; import com.android.systemui.statusbar.dagger.StatusBarDependenciesModule; import com.android.systemui.statusbar.notification.BypassHeadsUpNotifier; import com.android.systemui.statusbar.notification.DynamicPrivacyController; import com.android.systemui.statusbar.notification.DynamicPrivacyController; import com.android.systemui.statusbar.notification.NotificationAlertingManager; import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider; import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator; 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.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; import com.android.systemui.statusbar.notification.row.NotificationRowModule; import com.android.systemui.statusbar.notification.row.NotificationRowModule; Loading Loading @@ -145,9 +146,10 @@ public class CarStatusBarModule { RemoteInputQuickSettingsDisabler remoteInputQuickSettingsDisabler, RemoteInputQuickSettingsDisabler remoteInputQuickSettingsDisabler, NotificationGutsManager notificationGutsManager, NotificationGutsManager notificationGutsManager, NotificationLogger notificationLogger, NotificationLogger notificationLogger, NotificationInterruptStateProvider notificationInterruptionStateProvider, NotificationInterruptionStateProvider 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, Loading Loading @@ -232,6 +234,7 @@ public class CarStatusBarModule { notificationInterruptionStateProvider, notificationInterruptionStateProvider, notificationViewHierarchyManager, notificationViewHierarchyManager, keyguardViewMediator, keyguardViewMediator, notificationAlertingManager, displayMetrics, displayMetrics, metricsLogger, metricsLogger, uiBgExecutor, uiBgExecutor, Loading packages/SystemUI/src/com/android/systemui/Dependency.java +5 −1 Original line number Original line Diff line number Diff line Loading @@ -71,11 +71,12 @@ import com.android.systemui.statusbar.NotificationRemoteInputManager; import com.android.systemui.statusbar.NotificationViewHierarchyManager; import com.android.systemui.statusbar.NotificationViewHierarchyManager; import com.android.systemui.statusbar.SmartReplyController; import com.android.systemui.statusbar.SmartReplyController; import com.android.systemui.statusbar.VibratorHelper; import com.android.systemui.statusbar.VibratorHelper; import com.android.systemui.statusbar.notification.NotificationAlertingManager; import com.android.systemui.statusbar.notification.NotificationEntryManager; 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.NotificationInterruptionStateProvider; 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; Loading Loading @@ -288,6 +289,7 @@ public class Dependency { @Inject Lazy<NotificationLogger> mNotificationLogger; @Inject Lazy<NotificationLogger> mNotificationLogger; @Inject Lazy<NotificationViewHierarchyManager> mNotificationViewHierarchyManager; @Inject Lazy<NotificationViewHierarchyManager> mNotificationViewHierarchyManager; @Inject Lazy<NotificationFilter> mNotificationFilter; @Inject Lazy<NotificationFilter> mNotificationFilter; @Inject Lazy<NotificationInterruptionStateProvider> mNotificationInterruptionStateProvider; @Inject Lazy<KeyguardDismissUtil> mKeyguardDismissUtil; @Inject Lazy<KeyguardDismissUtil> mKeyguardDismissUtil; @Inject Lazy<SmartReplyController> mSmartReplyController; @Inject Lazy<SmartReplyController> mSmartReplyController; @Inject Lazy<RemoteInputQuickSettingsDisabler> mRemoteInputQuickSettingsDisabler; @Inject Lazy<RemoteInputQuickSettingsDisabler> mRemoteInputQuickSettingsDisabler; Loading Loading @@ -487,6 +489,8 @@ public class Dependency { mProviders.put(NotificationViewHierarchyManager.class, mProviders.put(NotificationViewHierarchyManager.class, mNotificationViewHierarchyManager::get); mNotificationViewHierarchyManager::get); mProviders.put(NotificationFilter.class, mNotificationFilter::get); mProviders.put(NotificationFilter.class, mNotificationFilter::get); mProviders.put(NotificationInterruptionStateProvider.class, mNotificationInterruptionStateProvider::get); mProviders.put(KeyguardDismissUtil.class, mKeyguardDismissUtil::get); mProviders.put(KeyguardDismissUtil.class, mKeyguardDismissUtil::get); mProviders.put(SmartReplyController.class, mSmartReplyController::get); mProviders.put(SmartReplyController.class, mSmartReplyController::get); mProviders.put(RemoteInputQuickSettingsDisabler.class, mProviders.put(RemoteInputQuickSettingsDisabler.class, Loading Loading
packages/CarSystemUI/src/com/android/systemui/CarSystemUIModule.java +6 −0 Original line number Original line Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.content.Context; import com.android.keyguard.KeyguardViewController; import com.android.keyguard.KeyguardViewController; import com.android.systemui.car.CarDeviceProvisionedController; import com.android.systemui.car.CarDeviceProvisionedController; import com.android.systemui.car.CarDeviceProvisionedControllerImpl; import com.android.systemui.car.CarDeviceProvisionedControllerImpl; import com.android.systemui.car.CarNotificationInterruptionStateProvider; import com.android.systemui.dagger.SystemUIRootComponent; import com.android.systemui.dagger.SystemUIRootComponent; import com.android.systemui.dock.DockManager; import com.android.systemui.dock.DockManager; import com.android.systemui.dock.DockManagerImpl; import com.android.systemui.dock.DockManagerImpl; Loading @@ -40,6 +41,7 @@ import com.android.systemui.statusbar.car.CarShadeControllerImpl; import com.android.systemui.statusbar.car.CarStatusBar; import com.android.systemui.statusbar.car.CarStatusBar; import com.android.systemui.statusbar.car.CarStatusBarKeyguardViewManager; import com.android.systemui.statusbar.car.CarStatusBarKeyguardViewManager; import com.android.systemui.statusbar.notification.NotificationEntryManager; import com.android.systemui.statusbar.notification.NotificationEntryManager; import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider; import com.android.systemui.statusbar.phone.HeadsUpManagerPhone; import com.android.systemui.statusbar.phone.HeadsUpManagerPhone; import com.android.systemui.statusbar.phone.KeyguardBypassController; import com.android.systemui.statusbar.phone.KeyguardBypassController; import com.android.systemui.statusbar.phone.KeyguardEnvironmentImpl; import com.android.systemui.statusbar.phone.KeyguardEnvironmentImpl; Loading @@ -63,6 +65,10 @@ import dagger.Provides; @Module(includes = {DividerModule.class}) @Module(includes = {DividerModule.class}) abstract class CarSystemUIModule { abstract class CarSystemUIModule { @Binds abstract NotificationInterruptionStateProvider bindNotificationInterruptionStateProvider( CarNotificationInterruptionStateProvider notificationInterruptionStateProvider); @Singleton @Singleton @Provides @Provides @Named(ALLOW_NOTIFICATION_LONG_PRESS_NAME) @Named(ALLOW_NOTIFICATION_LONG_PRESS_NAME) Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProvider.java→packages/CarSystemUI/src/com/android/systemui/car/CarNotificationInterruptionStateProvider.java +54 −0 Original line number Original line Diff line number Diff line /* /* * Copyright (C) 2020 The Android Open Source Project * Copyright (C) 2018 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. Loading @@ -14,46 +14,41 @@ * limitations under the License. * limitations under the License. */ */ package com.android.systemui.statusbar.notification.interruption; package com.android.systemui.car; import android.content.Context; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.notification.NotificationFilter; import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider; import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.policy.BatteryController; /** import javax.inject.Inject; * Provides bubble-up and heads-up state for notification entries. import javax.inject.Singleton; * * When a notification is heads-up when dozing, this is also called "pulsing." */ public interface NotificationInterruptStateProvider { /** * If the device is awake (not dozing): * Whether the notification should peek in from the top and alert the user. * * If the device is dozing: * Whether the notification should show the ambient view of the notification ("pulse"). * * @param entry the entry to check * @return true if the entry should heads up, false otherwise */ boolean shouldHeadsUp(NotificationEntry entry); /** /** Auto-specific implementation of {@link NotificationInterruptionStateProvider}. */ * Whether the notification should appear as a bubble with a fly-out on top of the screen. @Singleton * public class CarNotificationInterruptionStateProvider extends * @param entry the entry to check NotificationInterruptionStateProvider { * @return true if the entry should bubble up, false otherwise */ boolean shouldBubbleUp(NotificationEntry entry); /** @Inject * Whether to launch the entry's full screen intent when the entry is added. public CarNotificationInterruptionStateProvider(Context context, * NotificationFilter filter, * @param entry the entry that was added StatusBarStateController stateController, * @return {@code true} if we should launch the full screen intent BatteryController batteryController) { */ super(context, filter, stateController, batteryController); boolean shouldLaunchFullScreenIntentWhenAdded(NotificationEntry entry); } /** @Override * Add a component that can suppress visual interruptions. public boolean shouldHeadsUp(NotificationEntry entry) { */ // Because space is usually constrained in the auto use-case, there should not be a void addSuppressor(NotificationInterruptSuppressor suppressor); // pinned notification when the shade has been expanded. Ensure this by not pinning any // notification if the shade is already opened. if (!getPresenter().isPresenterFullyCollapsed()) { return false; } return super.shouldHeadsUp(entry); } } }
packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java +7 −22 Original line number Original line Diff line number Diff line Loading @@ -95,14 +95,13 @@ import com.android.systemui.statusbar.PulseExpansionHandler; import com.android.systemui.statusbar.SuperStatusBarViewFactory; import com.android.systemui.statusbar.SuperStatusBarViewFactory; import com.android.systemui.statusbar.SysuiStatusBarStateController; import com.android.systemui.statusbar.SysuiStatusBarStateController; import com.android.systemui.statusbar.VibratorHelper; import com.android.systemui.statusbar.VibratorHelper; import com.android.systemui.statusbar.notification.BypassHeadsUpNotifier; import com.android.systemui.statusbar.notification.DynamicPrivacyController; import com.android.systemui.statusbar.notification.DynamicPrivacyController; import com.android.systemui.statusbar.notification.NotificationAlertingManager; import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider; import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator; 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.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.NotificationInterruptStateProvider; import com.android.systemui.statusbar.notification.interruption.NotificationInterruptSuppressor; 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; import com.android.systemui.statusbar.phone.AutoHideController; import com.android.systemui.statusbar.phone.AutoHideController; Loading Loading @@ -250,9 +249,10 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt RemoteInputQuickSettingsDisabler remoteInputQuickSettingsDisabler, RemoteInputQuickSettingsDisabler remoteInputQuickSettingsDisabler, NotificationGutsManager notificationGutsManager, NotificationGutsManager notificationGutsManager, NotificationLogger notificationLogger, NotificationLogger notificationLogger, NotificationInterruptStateProvider notificationInterruptStateProvider, NotificationInterruptionStateProvider 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, Loading Loading @@ -335,9 +335,10 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt remoteInputQuickSettingsDisabler, remoteInputQuickSettingsDisabler, notificationGutsManager, notificationGutsManager, notificationLogger, notificationLogger, notificationInterruptStateProvider, notificationInterruptionStateProvider, notificationViewHierarchyManager, notificationViewHierarchyManager, keyguardViewMediator, keyguardViewMediator, notificationAlertingManager, displayMetrics, displayMetrics, metricsLogger, metricsLogger, uiBgExecutor, uiBgExecutor, Loading Loading @@ -487,22 +488,6 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt .isCurrentUserSetupInProgress(); .isCurrentUserSetupInProgress(); } } }); }); mNotificationInterruptStateProvider.addSuppressor(new NotificationInterruptSuppressor() { @Override public String getName() { return TAG; } @Override public boolean suppressInterruptions(NotificationEntry entry) { // Because space is usually constrained in the auto use-case, there should not be a // pinned notification when the shade has been expanded. // Ensure this by not allowing any interruptions (ie: pinning any notifications) if // the shade is already opened. return !getPresenter().isPresenterFullyCollapsed(); } }); } } @Override @Override Loading
packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarModule.java +6 −3 Original line number Original line Diff line number Diff line Loading @@ -62,12 +62,13 @@ import com.android.systemui.statusbar.SuperStatusBarViewFactory; import com.android.systemui.statusbar.SysuiStatusBarStateController; import com.android.systemui.statusbar.SysuiStatusBarStateController; import com.android.systemui.statusbar.VibratorHelper; import com.android.systemui.statusbar.VibratorHelper; import com.android.systemui.statusbar.dagger.StatusBarDependenciesModule; import com.android.systemui.statusbar.dagger.StatusBarDependenciesModule; import com.android.systemui.statusbar.notification.BypassHeadsUpNotifier; import com.android.systemui.statusbar.notification.DynamicPrivacyController; import com.android.systemui.statusbar.notification.DynamicPrivacyController; import com.android.systemui.statusbar.notification.NotificationAlertingManager; import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider; import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator; 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.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; import com.android.systemui.statusbar.notification.row.NotificationRowModule; import com.android.systemui.statusbar.notification.row.NotificationRowModule; Loading Loading @@ -145,9 +146,10 @@ public class CarStatusBarModule { RemoteInputQuickSettingsDisabler remoteInputQuickSettingsDisabler, RemoteInputQuickSettingsDisabler remoteInputQuickSettingsDisabler, NotificationGutsManager notificationGutsManager, NotificationGutsManager notificationGutsManager, NotificationLogger notificationLogger, NotificationLogger notificationLogger, NotificationInterruptStateProvider notificationInterruptionStateProvider, NotificationInterruptionStateProvider 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, Loading Loading @@ -232,6 +234,7 @@ public class CarStatusBarModule { notificationInterruptionStateProvider, notificationInterruptionStateProvider, notificationViewHierarchyManager, notificationViewHierarchyManager, keyguardViewMediator, keyguardViewMediator, notificationAlertingManager, displayMetrics, displayMetrics, metricsLogger, metricsLogger, uiBgExecutor, uiBgExecutor, Loading
packages/SystemUI/src/com/android/systemui/Dependency.java +5 −1 Original line number Original line Diff line number Diff line Loading @@ -71,11 +71,12 @@ import com.android.systemui.statusbar.NotificationRemoteInputManager; import com.android.systemui.statusbar.NotificationViewHierarchyManager; import com.android.systemui.statusbar.NotificationViewHierarchyManager; import com.android.systemui.statusbar.SmartReplyController; import com.android.systemui.statusbar.SmartReplyController; import com.android.systemui.statusbar.VibratorHelper; import com.android.systemui.statusbar.VibratorHelper; import com.android.systemui.statusbar.notification.NotificationAlertingManager; import com.android.systemui.statusbar.notification.NotificationEntryManager; 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.NotificationInterruptionStateProvider; 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; Loading Loading @@ -288,6 +289,7 @@ public class Dependency { @Inject Lazy<NotificationLogger> mNotificationLogger; @Inject Lazy<NotificationLogger> mNotificationLogger; @Inject Lazy<NotificationViewHierarchyManager> mNotificationViewHierarchyManager; @Inject Lazy<NotificationViewHierarchyManager> mNotificationViewHierarchyManager; @Inject Lazy<NotificationFilter> mNotificationFilter; @Inject Lazy<NotificationFilter> mNotificationFilter; @Inject Lazy<NotificationInterruptionStateProvider> mNotificationInterruptionStateProvider; @Inject Lazy<KeyguardDismissUtil> mKeyguardDismissUtil; @Inject Lazy<KeyguardDismissUtil> mKeyguardDismissUtil; @Inject Lazy<SmartReplyController> mSmartReplyController; @Inject Lazy<SmartReplyController> mSmartReplyController; @Inject Lazy<RemoteInputQuickSettingsDisabler> mRemoteInputQuickSettingsDisabler; @Inject Lazy<RemoteInputQuickSettingsDisabler> mRemoteInputQuickSettingsDisabler; Loading Loading @@ -487,6 +489,8 @@ public class Dependency { mProviders.put(NotificationViewHierarchyManager.class, mProviders.put(NotificationViewHierarchyManager.class, mNotificationViewHierarchyManager::get); mNotificationViewHierarchyManager::get); mProviders.put(NotificationFilter.class, mNotificationFilter::get); mProviders.put(NotificationFilter.class, mNotificationFilter::get); mProviders.put(NotificationInterruptionStateProvider.class, mNotificationInterruptionStateProvider::get); mProviders.put(KeyguardDismissUtil.class, mKeyguardDismissUtil::get); mProviders.put(KeyguardDismissUtil.class, mKeyguardDismissUtil::get); mProviders.put(SmartReplyController.class, mSmartReplyController::get); mProviders.put(SmartReplyController.class, mSmartReplyController::get); mProviders.put(RemoteInputQuickSettingsDisabler.class, mProviders.put(RemoteInputQuickSettingsDisabler.class, Loading