diff options
Diffstat (limited to 'packages/CarSystemUI/src')
5 files changed, 3 insertions, 967 deletions
diff --git a/packages/CarSystemUI/src/com/android/systemui/CarSystemUIBinder.java b/packages/CarSystemUI/src/com/android/systemui/CarSystemUIBinder.java index 34afb132805c..ccf078b38e0c 100644 --- a/packages/CarSystemUI/src/com/android/systemui/CarSystemUIBinder.java +++ b/packages/CarSystemUI/src/com/android/systemui/CarSystemUIBinder.java @@ -21,8 +21,6 @@ import com.android.systemui.bubbles.dagger.BubbleModule; import com.android.systemui.car.navigationbar.CarNavigationBar; import com.android.systemui.car.notification.CarNotificationModule; import com.android.systemui.car.sideloaded.SideLoadedAppController; -import com.android.systemui.car.statusbar.CarStatusBar; -import com.android.systemui.car.statusbar.CarStatusBarModule; import com.android.systemui.car.voicerecognition.ConnectedDeviceVoiceRecognitionNotifier; import com.android.systemui.car.volume.VolumeUI; import com.android.systemui.car.window.OverlayWindowModule; @@ -36,10 +34,10 @@ import com.android.systemui.recents.Recents; import com.android.systemui.recents.RecentsModule; import com.android.systemui.shortcut.ShortcutKeyDispatcher; import com.android.systemui.stackdivider.Divider; +import com.android.systemui.statusbar.dagger.StatusBarModule; import com.android.systemui.statusbar.notification.InstantAppNotifier; import com.android.systemui.statusbar.notification.dagger.NotificationsModule; import com.android.systemui.statusbar.phone.StatusBar; -import com.android.systemui.statusbar.tv.TvStatusBar; import com.android.systemui.theme.ThemeOverlayController; import com.android.systemui.toast.ToastUI; import com.android.systemui.util.leak.GarbageMonitor; @@ -50,7 +48,7 @@ import dagger.multibindings.ClassKey; import dagger.multibindings.IntoMap; /** Binder for car specific {@link SystemUI} modules. */ -@Module(includes = {RecentsModule.class, CarStatusBarModule.class, NotificationsModule.class, +@Module(includes = {RecentsModule.class, StatusBarModule.class, NotificationsModule.class, BubbleModule.class, KeyguardModule.class, OverlayWindowModule.class, CarNotificationModule.class}) public abstract class CarSystemUIBinder { @@ -155,19 +153,7 @@ public abstract class CarSystemUIBinder { @Binds @IntoMap @ClassKey(StatusBar.class) - public abstract SystemUI bindsStatusBar(CarStatusBar sysui); - - /** Inject into TvStatusBar. */ - @Binds - @IntoMap - @ClassKey(TvStatusBar.class) - public abstract SystemUI bindsTvStatusBar(TvStatusBar sysui); - - /** Inject into StatusBarGoogle. */ - @Binds - @IntoMap - @ClassKey(CarStatusBar.class) - public abstract SystemUI bindsCarStatusBar(CarStatusBar sysui); + public abstract SystemUI bindsStatusBar(StatusBar sysui); /** Inject into VolumeUI. */ @Binds diff --git a/packages/CarSystemUI/src/com/android/systemui/CarSystemUIModule.java b/packages/CarSystemUI/src/com/android/systemui/CarSystemUIModule.java index 496742680893..cde3699f3084 100644 --- a/packages/CarSystemUI/src/com/android/systemui/CarSystemUIModule.java +++ b/packages/CarSystemUI/src/com/android/systemui/CarSystemUIModule.java @@ -28,8 +28,6 @@ import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.car.CarDeviceProvisionedController; import com.android.systemui.car.CarDeviceProvisionedControllerImpl; import com.android.systemui.car.keyguard.CarKeyguardViewController; -import com.android.systemui.car.statusbar.CarStatusBar; -import com.android.systemui.car.statusbar.CarStatusBarKeyguardViewManager; import com.android.systemui.car.statusbar.DozeServiceHost; import com.android.systemui.car.statusbar.DummyNotificationShadeWindowController; import com.android.systemui.car.volume.CarVolumeDialogComponent; @@ -59,8 +57,6 @@ import com.android.systemui.statusbar.phone.NotificationGroupManager; import com.android.systemui.statusbar.phone.NotificationShadeWindowController; import com.android.systemui.statusbar.phone.ShadeController; import com.android.systemui.statusbar.phone.ShadeControllerImpl; -import com.android.systemui.statusbar.phone.StatusBar; -import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.BatteryControllerImpl; import com.android.systemui.statusbar.policy.ConfigurationController; @@ -158,17 +154,10 @@ public abstract class CarSystemUIModule { CarSystemUIRootComponent systemUIRootComponent); @Binds - public abstract StatusBar bindStatusBar(CarStatusBar statusBar); - - @Binds abstract VolumeDialogComponent bindVolumeDialogComponent( CarVolumeDialogComponent carVolumeDialogComponent); @Binds - abstract StatusBarKeyguardViewManager bindStatusBarKeyguardViewManager( - CarStatusBarKeyguardViewManager keyguardViewManager); - - @Binds abstract KeyguardViewController bindKeyguardViewController( CarKeyguardViewController carKeyguardViewController); diff --git a/packages/CarSystemUI/src/com/android/systemui/car/statusbar/CarStatusBar.java b/packages/CarSystemUI/src/com/android/systemui/car/statusbar/CarStatusBar.java deleted file mode 100644 index d692487d410e..000000000000 --- a/packages/CarSystemUI/src/com/android/systemui/car/statusbar/CarStatusBar.java +++ /dev/null @@ -1,519 +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.car.statusbar; - -import static com.android.systemui.Dependency.TIME_TICK_HANDLER_NAME; - -import android.annotation.Nullable; -import android.content.Context; -import android.graphics.drawable.Drawable; -import android.os.Handler; -import android.os.PowerManager; -import android.util.DisplayMetrics; -import android.util.Log; -import android.view.View; - -import com.android.internal.logging.MetricsLogger; -import com.android.internal.statusbar.RegisterStatusBarResult; -import com.android.keyguard.KeyguardUpdateMonitor; -import com.android.keyguard.ViewMediatorCallback; -import com.android.systemui.BatteryMeterView; -import com.android.systemui.Dependency; -import com.android.systemui.InitController; -import com.android.systemui.Prefs; -import com.android.systemui.R; -import com.android.systemui.assist.AssistManager; -import com.android.systemui.broadcast.BroadcastDispatcher; -import com.android.systemui.bubbles.BubbleController; -import com.android.systemui.car.CarDeviceProvisionedController; -import com.android.systemui.car.CarDeviceProvisionedListener; -import com.android.systemui.car.bluetooth.CarBatteryController; -import com.android.systemui.car.navigationbar.CarNavigationBarController; -import com.android.systemui.classifier.FalsingLog; -import com.android.systemui.colorextraction.SysuiColorExtractor; -import com.android.systemui.dagger.qualifiers.UiBackground; -import com.android.systemui.fragments.FragmentHostManager; -import com.android.systemui.keyguard.DismissCallbackRegistry; -import com.android.systemui.keyguard.KeyguardViewMediator; -import com.android.systemui.keyguard.ScreenLifecycle; -import com.android.systemui.keyguard.WakefulnessLifecycle; -import com.android.systemui.plugins.DarkIconDispatcher; -import com.android.systemui.plugins.FalsingManager; -import com.android.systemui.plugins.PluginDependencyProvider; -import com.android.systemui.plugins.qs.QS; -import com.android.systemui.recents.Recents; -import com.android.systemui.recents.ScreenPinningRequest; -import com.android.systemui.shared.plugins.PluginManager; -import com.android.systemui.stackdivider.Divider; -import com.android.systemui.statusbar.CommandQueue; -import com.android.systemui.statusbar.KeyguardIndicationController; -import com.android.systemui.statusbar.NavigationBarController; -import com.android.systemui.statusbar.NotificationLockscreenUserManager; -import com.android.systemui.statusbar.NotificationMediaManager; -import com.android.systemui.statusbar.NotificationRemoteInputManager; -import com.android.systemui.statusbar.NotificationShadeDepthController; -import com.android.systemui.statusbar.NotificationViewHierarchyManager; -import com.android.systemui.statusbar.PulseExpansionHandler; -import com.android.systemui.statusbar.SuperStatusBarViewFactory; -import com.android.systemui.statusbar.SysuiStatusBarStateController; -import com.android.systemui.statusbar.VibratorHelper; -import com.android.systemui.statusbar.notification.DynamicPrivacyController; -import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator; -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.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.row.NotificationGutsManager; -import com.android.systemui.statusbar.phone.AutoHideController; -import com.android.systemui.statusbar.phone.BiometricUnlockController; -import com.android.systemui.statusbar.phone.CollapsedStatusBarFragment; -import com.android.systemui.statusbar.phone.DozeParameters; -import com.android.systemui.statusbar.phone.DozeScrimController; -import com.android.systemui.statusbar.phone.DozeServiceHost; -import com.android.systemui.statusbar.phone.HeadsUpManagerPhone; -import com.android.systemui.statusbar.phone.KeyguardBypassController; -import com.android.systemui.statusbar.phone.KeyguardDismissUtil; -import com.android.systemui.statusbar.phone.LightBarController; -import com.android.systemui.statusbar.phone.LightsOutNotifController; -import com.android.systemui.statusbar.phone.LockscreenLockIconController; -import com.android.systemui.statusbar.phone.LockscreenWallpaper; -import com.android.systemui.statusbar.phone.NotificationGroupManager; -import com.android.systemui.statusbar.phone.NotificationShadeWindowController; -import com.android.systemui.statusbar.phone.PhoneStatusBarPolicy; -import com.android.systemui.statusbar.phone.ScrimController; -import com.android.systemui.statusbar.phone.ShadeController; -import com.android.systemui.statusbar.phone.StatusBar; -import com.android.systemui.statusbar.phone.StatusBarIconController; -import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; -import com.android.systemui.statusbar.phone.StatusBarNotificationActivityStarter; -import com.android.systemui.statusbar.phone.StatusBarTouchableRegionManager; -import com.android.systemui.statusbar.phone.dagger.StatusBarComponent; -import com.android.systemui.statusbar.policy.BatteryController; -import com.android.systemui.statusbar.policy.ConfigurationController; -import com.android.systemui.statusbar.policy.ExtensionController; -import com.android.systemui.statusbar.policy.KeyguardStateController; -import com.android.systemui.statusbar.policy.NetworkController; -import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler; -import com.android.systemui.statusbar.policy.UserInfoControllerImpl; -import com.android.systemui.statusbar.policy.UserSwitcherController; -import com.android.systemui.volume.VolumeComponent; - -import java.io.FileDescriptor; -import java.io.PrintWriter; -import java.util.Map; -import java.util.Optional; -import java.util.concurrent.Executor; - -import javax.inject.Named; -import javax.inject.Provider; - -import dagger.Lazy; - -/** - * A status bar tailored for the automotive use case. - */ -public class CarStatusBar extends StatusBar implements CarBatteryController.BatteryViewHandler { - private static final String TAG = "CarStatusBar"; - - private final UserSwitcherController mUserSwitcherController; - private final ScrimController mScrimController; - - private CarBatteryController mCarBatteryController; - private BatteryMeterView mBatteryMeterView; - private Drawable mNotificationPanelBackground; - - private final Object mQueueLock = new Object(); - private final CarNavigationBarController mCarNavigationBarController; - private final CarDeviceProvisionedController mCarDeviceProvisionedController; - private final ScreenLifecycle mScreenLifecycle; - - private boolean mDeviceIsSetUpForUser = true; - private boolean mIsUserSetupInProgress = false; - - public CarStatusBar( - Context context, - NotificationsController notificationsController, - LightBarController lightBarController, - AutoHideController autoHideController, - KeyguardUpdateMonitor keyguardUpdateMonitor, - StatusBarIconController statusBarIconController, - PulseExpansionHandler pulseExpansionHandler, - NotificationWakeUpCoordinator notificationWakeUpCoordinator, - KeyguardBypassController keyguardBypassController, - KeyguardStateController keyguardStateController, - HeadsUpManagerPhone headsUpManagerPhone, - DynamicPrivacyController dynamicPrivacyController, - BypassHeadsUpNotifier bypassHeadsUpNotifier, - FalsingManager falsingManager, - BroadcastDispatcher broadcastDispatcher, - RemoteInputQuickSettingsDisabler remoteInputQuickSettingsDisabler, - NotificationGutsManager notificationGutsManager, - NotificationLogger notificationLogger, - NotificationInterruptStateProvider notificationInterruptStateProvider, - NotificationViewHierarchyManager notificationViewHierarchyManager, - KeyguardViewMediator keyguardViewMediator, - DisplayMetrics displayMetrics, - MetricsLogger metricsLogger, - @UiBackground Executor uiBgExecutor, - NotificationMediaManager notificationMediaManager, - NotificationLockscreenUserManager lockScreenUserManager, - NotificationRemoteInputManager remoteInputManager, - UserSwitcherController userSwitcherController, - NetworkController networkController, - BatteryController batteryController, - SysuiColorExtractor colorExtractor, - ScreenLifecycle screenLifecycle, - WakefulnessLifecycle wakefulnessLifecycle, - SysuiStatusBarStateController statusBarStateController, - VibratorHelper vibratorHelper, - BubbleController bubbleController, - NotificationGroupManager groupManager, - VisualStabilityManager visualStabilityManager, - CarDeviceProvisionedController carDeviceProvisionedController, - NavigationBarController navigationBarController, - Lazy<AssistManager> assistManagerLazy, - ConfigurationController configurationController, - NotificationShadeWindowController notificationShadeWindowController, - LockscreenLockIconController lockscreenLockIconController, - DozeParameters dozeParameters, - ScrimController scrimController, - Lazy<LockscreenWallpaper> lockscreenWallpaperLazy, - Lazy<BiometricUnlockController> biometricUnlockControllerLazy, - DozeServiceHost dozeServiceHost, - PowerManager powerManager, - ScreenPinningRequest screenPinningRequest, - DozeScrimController dozeScrimController, - VolumeComponent volumeComponent, - CommandQueue commandQueue, - Optional<Recents> recents, - Provider<StatusBarComponent.Builder> statusBarComponentBuilder, - PluginManager pluginManager, - Optional<Divider> dividerOptional, - SuperStatusBarViewFactory superStatusBarViewFactory, - LightsOutNotifController lightsOutNotifController, - StatusBarNotificationActivityStarter.Builder - statusBarNotificationActivityStarterBuilder, - ShadeController shadeController, - StatusBarKeyguardViewManager statusBarKeyguardViewManager, - ViewMediatorCallback viewMediatorCallback, - InitController initController, - DarkIconDispatcher darkIconDispatcher, - @Named(TIME_TICK_HANDLER_NAME) Handler timeTickHandler, - PluginDependencyProvider pluginDependencyProvider, - KeyguardDismissUtil keyguardDismissUtil, - ExtensionController extensionController, - UserInfoControllerImpl userInfoControllerImpl, - PhoneStatusBarPolicy phoneStatusBarPolicy, - KeyguardIndicationController keyguardIndicationController, - DismissCallbackRegistry dismissCallbackRegistry, - StatusBarTouchableRegionManager statusBarTouchableRegionManager, - Lazy<NotificationShadeDepthController> depthControllerLazy, - /* Car Settings injected components. */ - CarNavigationBarController carNavigationBarController) { - super( - context, - notificationsController, - lightBarController, - autoHideController, - keyguardUpdateMonitor, - statusBarIconController, - pulseExpansionHandler, - notificationWakeUpCoordinator, - keyguardBypassController, - keyguardStateController, - headsUpManagerPhone, - dynamicPrivacyController, - bypassHeadsUpNotifier, - falsingManager, - broadcastDispatcher, - remoteInputQuickSettingsDisabler, - notificationGutsManager, - notificationLogger, - notificationInterruptStateProvider, - notificationViewHierarchyManager, - keyguardViewMediator, - displayMetrics, - metricsLogger, - uiBgExecutor, - notificationMediaManager, - lockScreenUserManager, - remoteInputManager, - userSwitcherController, - networkController, - batteryController, - colorExtractor, - screenLifecycle, - wakefulnessLifecycle, - statusBarStateController, - vibratorHelper, - bubbleController, - groupManager, - visualStabilityManager, - carDeviceProvisionedController, - navigationBarController, - assistManagerLazy, - configurationController, - notificationShadeWindowController, - lockscreenLockIconController, - dozeParameters, - scrimController, - null /* keyguardLiftController */, - lockscreenWallpaperLazy, - biometricUnlockControllerLazy, - dozeServiceHost, - powerManager, - screenPinningRequest, - dozeScrimController, - volumeComponent, - commandQueue, - recents, - statusBarComponentBuilder, - pluginManager, - dividerOptional, - lightsOutNotifController, - statusBarNotificationActivityStarterBuilder, - shadeController, - superStatusBarViewFactory, - statusBarKeyguardViewManager, - viewMediatorCallback, - initController, - darkIconDispatcher, - timeTickHandler, - pluginDependencyProvider, - keyguardDismissUtil, - extensionController, - userInfoControllerImpl, - phoneStatusBarPolicy, - keyguardIndicationController, - dismissCallbackRegistry, - depthControllerLazy, - statusBarTouchableRegionManager); - mUserSwitcherController = userSwitcherController; - mScrimController = scrimController; - mCarDeviceProvisionedController = carDeviceProvisionedController; - mCarNavigationBarController = carNavigationBarController; - mScreenLifecycle = screenLifecycle; - } - - @Override - public void start() { - mDeviceIsSetUpForUser = mCarDeviceProvisionedController.isCurrentUserSetup(); - mIsUserSetupInProgress = mCarDeviceProvisionedController.isCurrentUserSetupInProgress(); - - super.start(); - - createBatteryController(); - mCarBatteryController.startListening(); - - mCarDeviceProvisionedController.addCallback( - new CarDeviceProvisionedListener() { - @Override - public void onUserSetupInProgressChanged() { - mDeviceIsSetUpForUser = mCarDeviceProvisionedController - .isCurrentUserSetup(); - mIsUserSetupInProgress = mCarDeviceProvisionedController - .isCurrentUserSetupInProgress(); - } - - @Override - public void onUserSetupChanged() { - mDeviceIsSetUpForUser = mCarDeviceProvisionedController - .isCurrentUserSetup(); - mIsUserSetupInProgress = mCarDeviceProvisionedController - .isCurrentUserSetupInProgress(); - } - - @Override - public void onUserSwitched() { - mDeviceIsSetUpForUser = mCarDeviceProvisionedController - .isCurrentUserSetup(); - mIsUserSetupInProgress = mCarDeviceProvisionedController - .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 - public boolean hideKeyguard() { - boolean result = super.hideKeyguard(); - mCarNavigationBarController.hideAllKeyguardButtons(isDeviceSetupForUser()); - return result; - } - - @Override - public void showKeyguard() { - super.showKeyguard(); - mCarNavigationBarController.showAllKeyguardButtons(isDeviceSetupForUser()); - } - - private boolean isDeviceSetupForUser() { - return mDeviceIsSetUpForUser && !mIsUserSetupInProgress; - } - - @Override - protected void makeStatusBarView(@Nullable RegisterStatusBarResult result) { - super.makeStatusBarView(result); - - mNotificationPanelBackground = getDefaultWallpaper(); - mScrimController.setScrimBehindDrawable(mNotificationPanelBackground); - - FragmentHostManager manager = FragmentHostManager.get(mPhoneStatusBarWindow); - manager.addTagListener(CollapsedStatusBarFragment.TAG, (tag, fragment) -> { - mBatteryMeterView = fragment.getView().findViewById(R.id.battery); - - // By default, the BatteryMeterView should not be visible. It will be toggled - // when a device has connected by bluetooth. - mBatteryMeterView.setVisibility(View.GONE); - }); - } - - @Override - public void animateExpandNotificationsPanel() { - // No op. - } - - @Override - protected QS createDefaultQSFragment() { - return null; - } - - private BatteryController createBatteryController() { - mCarBatteryController = new CarBatteryController(mContext); - mCarBatteryController.addBatteryViewHandler(this); - return mCarBatteryController; - } - - @Override - protected void createNavigationBar(@Nullable RegisterStatusBarResult result) { - // No op. - } - - @Override - public void notifyBiometricAuthModeChanged() { - // No op. - } - - @Override - public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { - //When executing dump() function simultaneously, we need to serialize them - //to get mStackScroller's position correctly. - synchronized (mQueueLock) { - pw.println(" mStackScroller: " + viewInfo(mStackScroller)); - pw.println(" mStackScroller: " + viewInfo(mStackScroller) - + " scroll " + mStackScroller.getScrollX() - + "," + mStackScroller.getScrollY()); - } - pw.print(" mCarBatteryController="); - pw.println(mCarBatteryController); - pw.print(" mBatteryMeterView="); - pw.println(mBatteryMeterView); - - if (Dependency.get(KeyguardUpdateMonitor.class) != null) { - Dependency.get(KeyguardUpdateMonitor.class).dump(fd, pw, args); - } - - FalsingLog.dump(pw); - - pw.println("SharedPreferences:"); - for (Map.Entry<String, ?> entry : Prefs.getAll(mContext).entrySet()) { - pw.print(" "); - pw.print(entry.getKey()); - pw.print("="); - pw.println(entry.getValue()); - } - } - - @Override - public void showBatteryView() { - if (Log.isLoggable(TAG, Log.DEBUG)) { - Log.d(TAG, "showBatteryView(). mBatteryMeterView: " + mBatteryMeterView); - } - - if (mBatteryMeterView != null) { - mBatteryMeterView.setVisibility(View.VISIBLE); - } - } - - @Override - public void hideBatteryView() { - if (Log.isLoggable(TAG, Log.DEBUG)) { - Log.d(TAG, "hideBatteryView(). mBatteryMeterView: " + mBatteryMeterView); - } - - if (mBatteryMeterView != null) { - mBatteryMeterView.setVisibility(View.GONE); - } - } - - @Override - protected void createUserSwitcher() { - if (!mUserSwitcherController.useFullscreenUserSwitcher()) { - super.createUserSwitcher(); - } - } - - /** - * Dismisses the keyguard and shows bouncer if authentication is necessary. - */ - public void dismissKeyguard() { - // Don't dismiss keyguard when the screen is off. - if (mScreenLifecycle.getScreenState() == ScreenLifecycle.SCREEN_OFF) { - return; - } - executeRunnableDismissingKeyguard(null/* runnable */, null /* cancelAction */, - true /* dismissShade */, true /* afterKeyguardGone */, true /* deferred */); - } - - /** - * Ensures that relevant child views are appropriately recreated when the device's density - * changes. - */ - @Override - public void onDensityOrFontScaleChanged() { - super.onDensityOrFontScaleChanged(); - // Need to update the background on density changed in case the change was due to night - // mode. - mNotificationPanelBackground = getDefaultWallpaper(); - mScrimController.setScrimBehindDrawable(mNotificationPanelBackground); - } - - /** - * Returns the {@link Drawable} that represents the wallpaper that the user has currently set. - */ - private Drawable getDefaultWallpaper() { - return mContext.getDrawable(com.android.internal.R.drawable.default_wallpaper); - } -} diff --git a/packages/CarSystemUI/src/com/android/systemui/car/statusbar/CarStatusBarKeyguardViewManager.java b/packages/CarSystemUI/src/com/android/systemui/car/statusbar/CarStatusBarKeyguardViewManager.java deleted file mode 100644 index 96a998a500e1..000000000000 --- a/packages/CarSystemUI/src/com/android/systemui/car/statusbar/CarStatusBarKeyguardViewManager.java +++ /dev/null @@ -1,137 +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.car.statusbar; - -import android.content.Context; -import android.view.View; - -import com.android.internal.widget.LockPatternUtils; -import com.android.keyguard.KeyguardUpdateMonitor; -import com.android.keyguard.ViewMediatorCallback; -import com.android.systemui.R; -import com.android.systemui.car.navigationbar.CarNavigationBarController; -import com.android.systemui.dock.DockManager; -import com.android.systemui.statusbar.NotificationMediaManager; -import com.android.systemui.statusbar.SysuiStatusBarStateController; -import com.android.systemui.statusbar.phone.NavigationModeController; -import com.android.systemui.statusbar.phone.NotificationShadeWindowController; -import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; -import com.android.systemui.statusbar.policy.ConfigurationController; -import com.android.systemui.statusbar.policy.KeyguardStateController; - -import java.util.HashSet; -import java.util.Set; - -import javax.inject.Inject; -import javax.inject.Singleton; - -/** Car implementation of the {@link StatusBarKeyguardViewManager}. */ -@Singleton -public class CarStatusBarKeyguardViewManager extends StatusBarKeyguardViewManager { - - protected boolean mShouldHideNavBar; - private final CarNavigationBarController mCarNavigationBarController; - private Set<OnKeyguardCancelClickedListener> mKeygaurdCancelClickedListenerSet; - - @Inject - public CarStatusBarKeyguardViewManager(Context context, - ViewMediatorCallback callback, - LockPatternUtils lockPatternUtils, - SysuiStatusBarStateController sysuiStatusBarStateController, - ConfigurationController configurationController, - KeyguardUpdateMonitor keyguardUpdateMonitor, - NavigationModeController navigationModeController, - DockManager dockManager, - NotificationShadeWindowController notificationShadeWindowController, - KeyguardStateController keyguardStateController, - NotificationMediaManager notificationMediaManager, - CarNavigationBarController carNavigationBarController) { - super(context, callback, lockPatternUtils, sysuiStatusBarStateController, - configurationController, keyguardUpdateMonitor, navigationModeController, - dockManager, notificationShadeWindowController, keyguardStateController, - notificationMediaManager); - mShouldHideNavBar = context.getResources() - .getBoolean(R.bool.config_hideNavWhenKeyguardBouncerShown); - mCarNavigationBarController = carNavigationBarController; - mKeygaurdCancelClickedListenerSet = new HashSet<>(); - } - - @Override - protected void updateNavigationBarVisibility(boolean navBarVisible) { - if (!mShouldHideNavBar) { - return; - } - int visibility = navBarVisible ? View.VISIBLE : View.GONE; - mCarNavigationBarController.setBottomWindowVisibility(visibility); - mCarNavigationBarController.setLeftWindowVisibility(visibility); - mCarNavigationBarController.setRightWindowVisibility(visibility); - } - - /** - * Car is a multi-user system. There's a cancel button on the bouncer that allows the user to - * go back to the user switcher and select another user. Different user may have different - * security mode which requires bouncer container to be resized. For this reason, the bouncer - * view is destroyed on cancel. - */ - @Override - protected boolean shouldDestroyViewOnReset() { - return true; - } - - /** - * Called when cancel button in bouncer is pressed. - */ - @Override - public void onCancelClicked() { - mKeygaurdCancelClickedListenerSet.forEach(OnKeyguardCancelClickedListener::onCancelClicked); - } - - /** - * Do nothing on this change. - * The base class hides the keyguard which for automotive we want to avoid b/c this would happen - * on a configuration change due to day/night (headlight state). - */ - @Override - public void onDensityOrFontScaleChanged() { } - - /** - * Add listener for keyguard cancel clicked. - */ - public void addOnKeyguardCancelClickedListener( - OnKeyguardCancelClickedListener keyguardCancelClickedListener) { - mKeygaurdCancelClickedListenerSet.add(keyguardCancelClickedListener); - } - - /** - * Remove listener for keyguard cancel clicked. - */ - public void removeOnKeyguardCancelClickedListener( - OnKeyguardCancelClickedListener keyguardCancelClickedListener) { - mKeygaurdCancelClickedListenerSet.remove(keyguardCancelClickedListener); - } - - - /** - * Defines a callback for keyguard cancel button clicked listeners. - */ - public interface OnKeyguardCancelClickedListener { - /** - * Called when keyguard cancel button is clicked. - */ - void onCancelClicked(); - } -} diff --git a/packages/CarSystemUI/src/com/android/systemui/car/statusbar/CarStatusBarModule.java b/packages/CarSystemUI/src/com/android/systemui/car/statusbar/CarStatusBarModule.java deleted file mode 100644 index dc2eb04c2990..000000000000 --- a/packages/CarSystemUI/src/com/android/systemui/car/statusbar/CarStatusBarModule.java +++ /dev/null @@ -1,283 +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.car.statusbar; - -import static com.android.systemui.Dependency.TIME_TICK_HANDLER_NAME; - -import android.content.Context; -import android.os.Handler; -import android.os.PowerManager; -import android.util.DisplayMetrics; - -import com.android.internal.logging.MetricsLogger; -import com.android.keyguard.KeyguardUpdateMonitor; -import com.android.keyguard.ViewMediatorCallback; -import com.android.systemui.InitController; -import com.android.systemui.assist.AssistManager; -import com.android.systemui.broadcast.BroadcastDispatcher; -import com.android.systemui.bubbles.BubbleController; -import com.android.systemui.car.CarDeviceProvisionedController; -import com.android.systemui.car.navigationbar.CarNavigationBarController; -import com.android.systemui.colorextraction.SysuiColorExtractor; -import com.android.systemui.dagger.qualifiers.UiBackground; -import com.android.systemui.keyguard.DismissCallbackRegistry; -import com.android.systemui.keyguard.KeyguardViewMediator; -import com.android.systemui.keyguard.ScreenLifecycle; -import com.android.systemui.keyguard.WakefulnessLifecycle; -import com.android.systemui.plugins.DarkIconDispatcher; -import com.android.systemui.plugins.FalsingManager; -import com.android.systemui.plugins.PluginDependencyProvider; -import com.android.systemui.recents.Recents; -import com.android.systemui.recents.ScreenPinningRequest; -import com.android.systemui.shared.plugins.PluginManager; -import com.android.systemui.stackdivider.Divider; -import com.android.systemui.statusbar.CommandQueue; -import com.android.systemui.statusbar.KeyguardIndicationController; -import com.android.systemui.statusbar.NavigationBarController; -import com.android.systemui.statusbar.NotificationLockscreenUserManager; -import com.android.systemui.statusbar.NotificationMediaManager; -import com.android.systemui.statusbar.NotificationRemoteInputManager; -import com.android.systemui.statusbar.NotificationShadeDepthController; -import com.android.systemui.statusbar.NotificationViewHierarchyManager; -import com.android.systemui.statusbar.PulseExpansionHandler; -import com.android.systemui.statusbar.SuperStatusBarViewFactory; -import com.android.systemui.statusbar.SysuiStatusBarStateController; -import com.android.systemui.statusbar.VibratorHelper; -import com.android.systemui.statusbar.dagger.StatusBarDependenciesModule; -import com.android.systemui.statusbar.notification.DynamicPrivacyController; -import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator; -import com.android.systemui.statusbar.notification.VisualStabilityManager; -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.row.NotificationGutsManager; -import com.android.systemui.statusbar.notification.row.NotificationRowModule; -import com.android.systemui.statusbar.phone.AutoHideController; -import com.android.systemui.statusbar.phone.BiometricUnlockController; -import com.android.systemui.statusbar.phone.DozeParameters; -import com.android.systemui.statusbar.phone.DozeScrimController; -import com.android.systemui.statusbar.phone.DozeServiceHost; -import com.android.systemui.statusbar.phone.HeadsUpManagerPhone; -import com.android.systemui.statusbar.phone.KeyguardBypassController; -import com.android.systemui.statusbar.phone.KeyguardDismissUtil; -import com.android.systemui.statusbar.phone.LightBarController; -import com.android.systemui.statusbar.phone.LightsOutNotifController; -import com.android.systemui.statusbar.phone.LockscreenLockIconController; -import com.android.systemui.statusbar.phone.LockscreenWallpaper; -import com.android.systemui.statusbar.phone.NotificationGroupManager; -import com.android.systemui.statusbar.phone.NotificationShadeWindowController; -import com.android.systemui.statusbar.phone.PhoneStatusBarPolicy; -import com.android.systemui.statusbar.phone.ScrimController; -import com.android.systemui.statusbar.phone.ShadeController; -import com.android.systemui.statusbar.phone.StatusBarIconController; -import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; -import com.android.systemui.statusbar.phone.StatusBarNotificationActivityStarter; -import com.android.systemui.statusbar.phone.StatusBarTouchableRegionManager; -import com.android.systemui.statusbar.phone.dagger.StatusBarComponent; -import com.android.systemui.statusbar.phone.dagger.StatusBarPhoneDependenciesModule; -import com.android.systemui.statusbar.policy.BatteryController; -import com.android.systemui.statusbar.policy.ConfigurationController; -import com.android.systemui.statusbar.policy.ExtensionController; -import com.android.systemui.statusbar.policy.KeyguardStateController; -import com.android.systemui.statusbar.policy.NetworkController; -import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler; -import com.android.systemui.statusbar.policy.UserInfoControllerImpl; -import com.android.systemui.statusbar.policy.UserSwitcherController; -import com.android.systemui.volume.VolumeComponent; - -import java.util.Optional; -import java.util.concurrent.Executor; - -import javax.inject.Named; -import javax.inject.Provider; -import javax.inject.Singleton; - -import dagger.Lazy; -import dagger.Module; -import dagger.Provides; - -/** - * Dagger Module providing {@link CarStatusBar}. - */ -@Module(includes = {StatusBarDependenciesModule.class, StatusBarPhoneDependenciesModule.class, - NotificationRowModule.class}) -public class CarStatusBarModule { - /** - * Provides our instance of StatusBar which is considered optional. - */ - @Provides - @Singleton - static CarStatusBar provideStatusBar( - Context context, - NotificationsController notificationsController, - LightBarController lightBarController, - AutoHideController autoHideController, - KeyguardUpdateMonitor keyguardUpdateMonitor, - StatusBarIconController statusBarIconController, - PulseExpansionHandler pulseExpansionHandler, - NotificationWakeUpCoordinator notificationWakeUpCoordinator, - KeyguardBypassController keyguardBypassController, - KeyguardStateController keyguardStateController, - HeadsUpManagerPhone headsUpManagerPhone, - DynamicPrivacyController dynamicPrivacyController, - BypassHeadsUpNotifier bypassHeadsUpNotifier, - FalsingManager falsingManager, - BroadcastDispatcher broadcastDispatcher, - RemoteInputQuickSettingsDisabler remoteInputQuickSettingsDisabler, - NotificationGutsManager notificationGutsManager, - NotificationLogger notificationLogger, - NotificationInterruptStateProvider notificationInterruptionStateProvider, - NotificationViewHierarchyManager notificationViewHierarchyManager, - KeyguardViewMediator keyguardViewMediator, - DisplayMetrics displayMetrics, - MetricsLogger metricsLogger, - @UiBackground Executor uiBgExecutor, - NotificationMediaManager notificationMediaManager, - NotificationLockscreenUserManager lockScreenUserManager, - NotificationRemoteInputManager remoteInputManager, - UserSwitcherController userSwitcherController, - NetworkController networkController, - BatteryController batteryController, - SysuiColorExtractor colorExtractor, - ScreenLifecycle screenLifecycle, - WakefulnessLifecycle wakefulnessLifecycle, - SysuiStatusBarStateController statusBarStateController, - VibratorHelper vibratorHelper, - BubbleController bubbleController, - NotificationGroupManager groupManager, - VisualStabilityManager visualStabilityManager, - CarDeviceProvisionedController carDeviceProvisionedController, - NavigationBarController navigationBarController, - Lazy<AssistManager> assistManagerLazy, - ConfigurationController configurationController, - NotificationShadeWindowController notificationShadeWindowController, - LockscreenLockIconController lockscreenLockIconController, - DozeParameters dozeParameters, - ScrimController scrimController, - Lazy<LockscreenWallpaper> lockscreenWallpaperLazy, - Lazy<BiometricUnlockController> biometricUnlockControllerLazy, - DozeServiceHost dozeServiceHost, - PowerManager powerManager, - ScreenPinningRequest screenPinningRequest, - DozeScrimController dozeScrimController, - VolumeComponent volumeComponent, - CommandQueue commandQueue, - Optional<Recents> recentsOptional, - Provider<StatusBarComponent.Builder> statusBarComponentBuilder, - PluginManager pluginManager, - Optional<Divider> dividerOptional, - SuperStatusBarViewFactory superStatusBarViewFactory, - LightsOutNotifController lightsOutNotifController, - StatusBarNotificationActivityStarter.Builder - statusBarNotificationActivityStarterBuilder, - ShadeController shadeController, - StatusBarKeyguardViewManager statusBarKeyguardViewManager, - ViewMediatorCallback viewMediatorCallback, - InitController initController, - DarkIconDispatcher darkIconDispatcher, - @Named(TIME_TICK_HANDLER_NAME) Handler timeTickHandler, - PluginDependencyProvider pluginDependencyProvider, - KeyguardDismissUtil keyguardDismissUtil, - ExtensionController extensionController, - UserInfoControllerImpl userInfoControllerImpl, - PhoneStatusBarPolicy phoneStatusBarPolicy, - KeyguardIndicationController keyguardIndicationController, - DismissCallbackRegistry dismissCallbackRegistry, - StatusBarTouchableRegionManager statusBarTouchableRegionManager, - Lazy<NotificationShadeDepthController> notificationShadeDepthControllerLazy, - CarNavigationBarController carNavigationBarController) { - return new CarStatusBar( - context, - notificationsController, - lightBarController, - autoHideController, - keyguardUpdateMonitor, - statusBarIconController, - pulseExpansionHandler, - notificationWakeUpCoordinator, - keyguardBypassController, - keyguardStateController, - headsUpManagerPhone, - dynamicPrivacyController, - bypassHeadsUpNotifier, - falsingManager, - broadcastDispatcher, - remoteInputQuickSettingsDisabler, - notificationGutsManager, - notificationLogger, - notificationInterruptionStateProvider, - notificationViewHierarchyManager, - keyguardViewMediator, - displayMetrics, - metricsLogger, - uiBgExecutor, - notificationMediaManager, - lockScreenUserManager, - remoteInputManager, - userSwitcherController, - networkController, - batteryController, - colorExtractor, - screenLifecycle, - wakefulnessLifecycle, - statusBarStateController, - vibratorHelper, - bubbleController, - groupManager, - visualStabilityManager, - carDeviceProvisionedController, - navigationBarController, - assistManagerLazy, - configurationController, - notificationShadeWindowController, - lockscreenLockIconController, - dozeParameters, - scrimController, - lockscreenWallpaperLazy, - biometricUnlockControllerLazy, - dozeServiceHost, - powerManager, - screenPinningRequest, - dozeScrimController, - volumeComponent, - commandQueue, - recentsOptional, - statusBarComponentBuilder, - pluginManager, - dividerOptional, - superStatusBarViewFactory, - lightsOutNotifController, - statusBarNotificationActivityStarterBuilder, - shadeController, - statusBarKeyguardViewManager, - viewMediatorCallback, - initController, - darkIconDispatcher, - timeTickHandler, - pluginDependencyProvider, - keyguardDismissUtil, - extensionController, - userInfoControllerImpl, - phoneStatusBarPolicy, - keyguardIndicationController, - dismissCallbackRegistry, - statusBarTouchableRegionManager, - notificationShadeDepthControllerLazy, - carNavigationBarController); - } -} |