From 1a9b9d7abbe9c644a7844e5257982fd7c9feaac1 Mon Sep 17 00:00:00 2001 From: Caitlin Shkuratov Date: Tue, 25 Apr 2023 14:19:58 +0000 Subject: [PATCH 1/5] [Central Surfaces] Make the shade header view a singleton. Bug: 277762009 Test: compiles Test: shade header shows up correctly Test: atest ShadeHeaderControllerTest Change-Id: I3c94c96388db279574f43f52426e72e682f3ccb9 --- .../systemui/shade/ShadeHeaderController.kt | 2 +- .../com/android/systemui/shade/ShadeModule.kt | 18 ++++++++++++++++++ .../phone/dagger/StatusBarViewModule.java | 17 ++--------------- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/shade/ShadeHeaderController.kt b/packages/SystemUI/src/com/android/systemui/shade/ShadeHeaderController.kt index f0815e93dccdd..d07f1d84531dc 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/ShadeHeaderController.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/ShadeHeaderController.kt @@ -52,6 +52,7 @@ import com.android.systemui.shade.ShadeHeaderController.Companion.LARGE_SCREEN_H import com.android.systemui.shade.ShadeHeaderController.Companion.LARGE_SCREEN_HEADER_TRANSITION_ID import com.android.systemui.shade.ShadeHeaderController.Companion.QQS_HEADER_CONSTRAINT import com.android.systemui.shade.ShadeHeaderController.Companion.QS_HEADER_CONSTRAINT +import com.android.systemui.shade.ShadeModule.Companion.SHADE_HEADER import com.android.systemui.shade.carrier.ShadeCarrierGroup import com.android.systemui.shade.carrier.ShadeCarrierGroupController import com.android.systemui.statusbar.phone.StatusBarContentInsetsProvider @@ -59,7 +60,6 @@ import com.android.systemui.statusbar.phone.StatusBarIconController import com.android.systemui.statusbar.phone.StatusBarLocation import com.android.systemui.statusbar.phone.StatusIconContainer import com.android.systemui.statusbar.phone.dagger.CentralSurfacesComponent.CentralSurfacesScope -import com.android.systemui.statusbar.phone.dagger.StatusBarViewModule.SHADE_HEADER import com.android.systemui.statusbar.policy.Clock import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.statusbar.policy.NextAlarmController diff --git a/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt b/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt index 9cd8c547d1c1c..49e02e3b23379 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt @@ -17,6 +17,8 @@ package com.android.systemui.shade import android.view.LayoutInflater +import android.view.ViewStub +import androidx.constraintlayout.motion.widget.MotionLayout import com.android.keyguard.LockIconView import com.android.systemui.CoreStartable import com.android.systemui.R @@ -31,6 +33,7 @@ import dagger.Module import dagger.Provides import dagger.multibindings.ClassKey import dagger.multibindings.IntoMap +import javax.inject.Named /** Module for classes related to the notification shade. */ @Module @@ -42,6 +45,8 @@ abstract class ShadeModule { abstract fun bindAuthRippleController(controller: AuthRippleController): CoreStartable companion object { + const val SHADE_HEADER = "large_screen_shade_header" + @Provides @SysUISingleton // TODO(b/277762009): Do something similar to @@ -109,5 +114,18 @@ abstract class ShadeModule { ): TapAgainView { return notificationPanelView.findViewById(R.id.shade_falsing_tap_again) } + + // TODO(b/277762009): Only allow this view's controller to inject the view. See above. + @Provides + @SysUISingleton + @Named(SHADE_HEADER) + fun providesShadeHeaderView( + notificationShadeWindowView: NotificationShadeWindowView, + ): MotionLayout { + val stub = notificationShadeWindowView.findViewById(R.id.qs_header_stub) + val layoutId = R.layout.combined_qs_header + stub.layoutResource = layoutId + return stub.inflate() as MotionLayout + } } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarViewModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarViewModule.java index 2c57a268f6b8f..94414dd65fbb9 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarViewModule.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarViewModule.java @@ -16,10 +16,11 @@ package com.android.systemui.statusbar.phone.dagger; +import static com.android.systemui.shade.ShadeModule.SHADE_HEADER; + import android.content.ContentResolver; import android.os.Handler; import android.view.LayoutInflater; -import android.view.ViewStub; import androidx.constraintlayout.motion.widget.MotionLayout; @@ -90,7 +91,6 @@ import javax.inject.Provider; }) public abstract class StatusBarViewModule { - public static final String SHADE_HEADER = "large_screen_shade_header"; public static final String STATUS_BAR_FRAGMENT = "status_bar_fragment"; /** */ @@ -136,19 +136,6 @@ public abstract class StatusBarViewModule { abstract ShadeViewController bindsShadeViewController( NotificationPanelViewController notificationPanelViewController); - @Provides - @Named(SHADE_HEADER) - @CentralSurfacesComponent.CentralSurfacesScope - public static MotionLayout getLargeScreenShadeHeaderBarView( - NotificationShadeWindowView notificationShadeWindowView, - FeatureFlags featureFlags) { - ViewStub stub = notificationShadeWindowView.findViewById(R.id.qs_header_stub); - int layoutId = R.layout.combined_qs_header; - stub.setLayoutResource(layoutId); - MotionLayout v = (MotionLayout) stub.inflate(); - return v; - } - /** */ @Provides @CentralSurfacesComponent.CentralSurfacesScope From 26d95db9dbd5d847ca56bb9b13b0a000548463f4 Mon Sep 17 00:00:00 2001 From: Caitlin Shkuratov Date: Tue, 25 Apr 2023 14:50:10 +0000 Subject: [PATCH 2/5] [Central Surfaces] Make CombinedShadeHeadersConstraintManager singleton. Bug: 277762009 Test: manual: verify privacy chip in QQS still works correctly Test: atest CombinedShadeHeaderConstraintsTest Change-Id: Ieee4b442a69a87f33f5bbdb713752e8f7fe992bf --- .../shade/CombinedShadeHeadersConstraintManagerImpl.kt | 4 ++-- .../src/com/android/systemui/shade/ShadeModule.kt | 6 ++++++ .../statusbar/phone/dagger/StatusBarViewModule.java | 10 ---------- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/shade/CombinedShadeHeadersConstraintManagerImpl.kt b/packages/SystemUI/src/com/android/systemui/shade/CombinedShadeHeadersConstraintManagerImpl.kt index b3d31f2986d17..7e0f504002996 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/CombinedShadeHeadersConstraintManagerImpl.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/CombinedShadeHeadersConstraintManagerImpl.kt @@ -19,12 +19,12 @@ package com.android.systemui.shade import android.view.ViewGroup import androidx.constraintlayout.widget.ConstraintSet import com.android.systemui.R -import com.android.systemui.statusbar.phone.dagger.CentralSurfacesComponent +import com.android.systemui.dagger.SysUISingleton /** * Standard implementation of [CombinedShadeHeadersConstraintManager]. */ -@CentralSurfacesComponent.CentralSurfacesScope +@SysUISingleton object CombinedShadeHeadersConstraintManagerImpl : CombinedShadeHeadersConstraintManager { override fun privacyChipVisibilityConstraints(visible: Boolean): ConstraintsChanges { diff --git a/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt b/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt index 49e02e3b23379..a0ab451cb99eb 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt @@ -127,5 +127,11 @@ abstract class ShadeModule { stub.layoutResource = layoutId return stub.inflate() as MotionLayout } + + @Provides + @SysUISingleton + fun providesCombinedShadeHeadersConstraintManager(): CombinedShadeHeadersConstraintManager { + return CombinedShadeHeadersConstraintManagerImpl + } } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarViewModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarViewModule.java index 94414dd65fbb9..1b9b508fc1b39 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarViewModule.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarViewModule.java @@ -35,8 +35,6 @@ import com.android.systemui.flags.Flags; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.privacy.OngoingPrivacyChip; import com.android.systemui.settings.UserTracker; -import com.android.systemui.shade.CombinedShadeHeadersConstraintManager; -import com.android.systemui.shade.CombinedShadeHeadersConstraintManagerImpl; import com.android.systemui.shade.NotificationPanelView; import com.android.systemui.shade.NotificationPanelViewController; import com.android.systemui.shade.NotificationShadeWindowView; @@ -136,14 +134,6 @@ public abstract class StatusBarViewModule { abstract ShadeViewController bindsShadeViewController( NotificationPanelViewController notificationPanelViewController); - /** */ - @Provides - @CentralSurfacesComponent.CentralSurfacesScope - public static CombinedShadeHeadersConstraintManager - provideCombinedShadeHeadersConstraintManager() { - return CombinedShadeHeadersConstraintManagerImpl.INSTANCE; - } - /** */ @Provides @CentralSurfacesComponent.CentralSurfacesScope From 1a04915ca68170d1c109c0657e5d39388e5bfba7 Mon Sep 17 00:00:00 2001 From: Caitlin Shkuratov Date: Tue, 25 Apr 2023 14:30:54 +0000 Subject: [PATCH 3/5] [Central Surfaces] Make shade BatteryMeterView(&Controller) a singleton. Bug: 277762009 Test: manual: verify battery icon in shade responds to battery changes like plug & unplug Change-Id: Ieed660792f474c2fb01fe3ddb60b0a26847f442b --- .../com/android/systemui/shade/ShadeModule.kt | 43 +++++++++++++++++++ .../phone/dagger/StatusBarViewModule.java | 41 ------------------ 2 files changed, 43 insertions(+), 41 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt b/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt index a0ab451cb99eb..d3f7bab31411b 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt @@ -16,18 +16,28 @@ package com.android.systemui.shade +import android.content.ContentResolver +import android.os.Handler import android.view.LayoutInflater import android.view.ViewStub import androidx.constraintlayout.motion.widget.MotionLayout import com.android.keyguard.LockIconView import com.android.systemui.CoreStartable import com.android.systemui.R +import com.android.systemui.battery.BatteryMeterView +import com.android.systemui.battery.BatteryMeterViewController import com.android.systemui.biometrics.AuthRippleController import com.android.systemui.biometrics.AuthRippleView import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.dagger.qualifiers.Main +import com.android.systemui.flags.FeatureFlags +import com.android.systemui.settings.UserTracker import com.android.systemui.statusbar.LightRevealScrim import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout import com.android.systemui.statusbar.phone.TapAgainView +import com.android.systemui.statusbar.policy.BatteryController +import com.android.systemui.statusbar.policy.ConfigurationController +import com.android.systemui.tuner.TunerService import dagger.Binds import dagger.Module import dagger.Provides @@ -133,5 +143,38 @@ abstract class ShadeModule { fun providesCombinedShadeHeadersConstraintManager(): CombinedShadeHeadersConstraintManager { return CombinedShadeHeadersConstraintManagerImpl } + + // TODO(b/277762009): Only allow this view's controller to inject the view. See above. + @Provides + @SysUISingleton + @Named(SHADE_HEADER) + fun providesBatteryMeterView(@Named(SHADE_HEADER) view: MotionLayout): BatteryMeterView { + return view.findViewById(R.id.batteryRemainingIcon) + } + + @Provides + @SysUISingleton + @Named(SHADE_HEADER) + fun providesBatteryMeterViewController( + @Named(SHADE_HEADER) batteryMeterView: BatteryMeterView, + userTracker: UserTracker, + configurationController: ConfigurationController, + tunerService: TunerService, + @Main mainHandler: Handler, + contentResolver: ContentResolver, + featureFlags: FeatureFlags, + batteryController: BatteryController, + ): BatteryMeterViewController { + return BatteryMeterViewController( + batteryMeterView, + userTracker, + configurationController, + tunerService, + mainHandler, + contentResolver, + featureFlags, + batteryController, + ) + } } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarViewModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarViewModule.java index 1b9b508fc1b39..244c1dcfcb7f2 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarViewModule.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarViewModule.java @@ -18,23 +18,18 @@ package com.android.systemui.statusbar.phone.dagger; import static com.android.systemui.shade.ShadeModule.SHADE_HEADER; -import android.content.ContentResolver; -import android.os.Handler; import android.view.LayoutInflater; import androidx.constraintlayout.motion.widget.MotionLayout; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.systemui.R; -import com.android.systemui.battery.BatteryMeterView; -import com.android.systemui.battery.BatteryMeterViewController; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dump.DumpManager; import com.android.systemui.flags.FeatureFlags; import com.android.systemui.flags.Flags; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.privacy.OngoingPrivacyChip; -import com.android.systemui.settings.UserTracker; import com.android.systemui.shade.NotificationPanelView; import com.android.systemui.shade.NotificationPanelViewController; import com.android.systemui.shade.NotificationShadeWindowView; @@ -64,11 +59,8 @@ import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment; import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragmentLogger; import com.android.systemui.statusbar.phone.fragment.dagger.StatusBarFragmentComponent; import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController; -import com.android.systemui.statusbar.policy.BatteryController; -import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.statusbar.window.StatusBarWindowStateController; -import com.android.systemui.tuner.TunerService; import com.android.systemui.util.CarrierConfigTracker; import com.android.systemui.util.settings.SecureSettings; @@ -150,39 +142,6 @@ public abstract class StatusBarViewModule { return header.findViewById(R.id.statusIcons); } - /** */ - @Provides - @CentralSurfacesComponent.CentralSurfacesScope - @Named(SHADE_HEADER) - static BatteryMeterView getBatteryMeterView(@Named(SHADE_HEADER) MotionLayout view) { - return view.findViewById(R.id.batteryRemainingIcon); - } - - @Provides - @CentralSurfacesComponent.CentralSurfacesScope - @Named(SHADE_HEADER) - static BatteryMeterViewController getBatteryMeterViewController( - @Named(SHADE_HEADER) BatteryMeterView batteryMeterView, - UserTracker userTracker, - ConfigurationController configurationController, - TunerService tunerService, - @Main Handler mainHandler, - ContentResolver contentResolver, - FeatureFlags featureFlags, - BatteryController batteryController - ) { - return new BatteryMeterViewController( - batteryMeterView, - userTracker, - configurationController, - tunerService, - mainHandler, - contentResolver, - featureFlags, - batteryController); - - } - /** */ @Provides @CentralSurfacesComponent.CentralSurfacesScope From 3226ea68f8a67e228428a056dbbfb55c24098def Mon Sep 17 00:00:00 2001 From: Caitlin Shkuratov Date: Tue, 25 Apr 2023 15:07:58 +0000 Subject: [PATCH 4/5] [Central Surfaces] Make shade privacy chip & status icons singletons. Adding the `@Named` to `HeaderPrivacyIconsController` isn't strictly necessary, but it makes those views consistent with the battery views and ensures that the correct views are being passed in. Bug: 277762009 Test: privacy chip and status icons work correctly in the shade Change-Id: I424f96e232936346ca9c5b98e76b2b8f4de369af --- .../qs/HeaderPrivacyIconsController.kt | 6 +++-- .../com/android/systemui/shade/ShadeModule.kt | 20 +++++++++++++++++ .../phone/dagger/StatusBarViewModule.java | 22 ------------------- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/qs/HeaderPrivacyIconsController.kt b/packages/SystemUI/src/com/android/systemui/qs/HeaderPrivacyIconsController.kt index 6f645b5620080..995c6a476f0d7 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/HeaderPrivacyIconsController.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/HeaderPrivacyIconsController.kt @@ -26,7 +26,9 @@ import java.util.concurrent.Executor import javax.inject.Inject import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.dagger.qualifiers.Main +import com.android.systemui.shade.ShadeModule.Companion.SHADE_HEADER import com.android.systemui.statusbar.policy.DeviceProvisionedController +import javax.inject.Named interface ChipVisibilityListener { fun onChipVisibilityRefreshed(visible: Boolean) @@ -45,10 +47,10 @@ interface ChipVisibilityListener { class HeaderPrivacyIconsController @Inject constructor( private val privacyItemController: PrivacyItemController, private val uiEventLogger: UiEventLogger, - private val privacyChip: OngoingPrivacyChip, + @Named(SHADE_HEADER) private val privacyChip: OngoingPrivacyChip, private val privacyDialogController: PrivacyDialogController, private val privacyLogger: PrivacyLogger, - private val iconContainer: StatusIconContainer, + @Named(SHADE_HEADER) private val iconContainer: StatusIconContainer, private val permissionManager: PermissionManager, @Background private val backgroundExecutor: Executor, @Main private val uiExecutor: Executor, diff --git a/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt b/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt index d3f7bab31411b..b7551cf3408e5 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/ShadeModule.kt @@ -31,9 +31,11 @@ import com.android.systemui.biometrics.AuthRippleView import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.flags.FeatureFlags +import com.android.systemui.privacy.OngoingPrivacyChip import com.android.systemui.settings.UserTracker import com.android.systemui.statusbar.LightRevealScrim import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout +import com.android.systemui.statusbar.phone.StatusIconContainer import com.android.systemui.statusbar.phone.TapAgainView import com.android.systemui.statusbar.policy.BatteryController import com.android.systemui.statusbar.policy.ConfigurationController @@ -176,5 +178,23 @@ abstract class ShadeModule { batteryController, ) } + + @Provides + @SysUISingleton + @Named(SHADE_HEADER) + fun providesOngoingPrivacyChip( + @Named(SHADE_HEADER) header: MotionLayout, + ): OngoingPrivacyChip { + return header.findViewById(R.id.privacy_chip) + } + + @Provides + @SysUISingleton + @Named(SHADE_HEADER) + fun providesStatusIconContainer( + @Named(SHADE_HEADER) header: MotionLayout, + ): StatusIconContainer { + return header.findViewById(R.id.statusIcons) + } } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarViewModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarViewModule.java index 244c1dcfcb7f2..67243b6aed005 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarViewModule.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarViewModule.java @@ -16,12 +16,8 @@ package com.android.systemui.statusbar.phone.dagger; -import static com.android.systemui.shade.ShadeModule.SHADE_HEADER; - import android.view.LayoutInflater; -import androidx.constraintlayout.motion.widget.MotionLayout; - import com.android.keyguard.KeyguardUpdateMonitor; import com.android.systemui.R; import com.android.systemui.dagger.qualifiers.Main; @@ -29,7 +25,6 @@ import com.android.systemui.dump.DumpManager; import com.android.systemui.flags.FeatureFlags; import com.android.systemui.flags.Flags; import com.android.systemui.plugins.statusbar.StatusBarStateController; -import com.android.systemui.privacy.OngoingPrivacyChip; import com.android.systemui.shade.NotificationPanelView; import com.android.systemui.shade.NotificationPanelViewController; import com.android.systemui.shade.NotificationShadeWindowView; @@ -53,7 +48,6 @@ import com.android.systemui.statusbar.phone.StatusBarBoundsProvider; import com.android.systemui.statusbar.phone.StatusBarHideIconsForBouncerManager; import com.android.systemui.statusbar.phone.StatusBarIconController; import com.android.systemui.statusbar.phone.StatusBarLocationPublisher; -import com.android.systemui.statusbar.phone.StatusIconContainer; import com.android.systemui.statusbar.phone.SystemBarAttributesListener; import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment; import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragmentLogger; @@ -126,22 +120,6 @@ public abstract class StatusBarViewModule { abstract ShadeViewController bindsShadeViewController( NotificationPanelViewController notificationPanelViewController); - /** */ - @Provides - @CentralSurfacesComponent.CentralSurfacesScope - public static OngoingPrivacyChip getSplitShadeOngoingPrivacyChip( - @Named(SHADE_HEADER) MotionLayout header) { - return header.findViewById(R.id.privacy_chip); - } - - /** */ - @Provides - @CentralSurfacesComponent.CentralSurfacesScope - static StatusIconContainer providesStatusIconContainer( - @Named(SHADE_HEADER) MotionLayout header) { - return header.findViewById(R.id.statusIcons); - } - /** */ @Provides @CentralSurfacesComponent.CentralSurfacesScope From e6ab21a3ab50c3e411dbada23f343142bf27cd07 Mon Sep 17 00:00:00 2001 From: Caitlin Shkuratov Date: Tue, 25 Apr 2023 15:02:42 +0000 Subject: [PATCH 5/5] [Central Surfaces] Make ShadeHeaderController a singleton. Bug: 277762009 Test: manual: shade header still works, even on font/display changes Test: atest ShadeHeaderControllerTest Change-Id: Ie75ef932d5fe671aaf5da1bd9840c39b2a73241f --- .../src/com/android/systemui/shade/ShadeHeaderController.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/shade/ShadeHeaderController.kt b/packages/SystemUI/src/com/android/systemui/shade/ShadeHeaderController.kt index d07f1d84531dc..86ae4ecf6e704 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/ShadeHeaderController.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/ShadeHeaderController.kt @@ -41,6 +41,7 @@ import com.android.systemui.animation.Interpolators import com.android.systemui.animation.ShadeInterpolation import com.android.systemui.battery.BatteryMeterView import com.android.systemui.battery.BatteryMeterViewController +import com.android.systemui.dagger.SysUISingleton import com.android.systemui.demomode.DemoMode import com.android.systemui.demomode.DemoModeController import com.android.systemui.dump.DumpManager @@ -59,7 +60,6 @@ import com.android.systemui.statusbar.phone.StatusBarContentInsetsProvider import com.android.systemui.statusbar.phone.StatusBarIconController import com.android.systemui.statusbar.phone.StatusBarLocation import com.android.systemui.statusbar.phone.StatusIconContainer -import com.android.systemui.statusbar.phone.dagger.CentralSurfacesComponent.CentralSurfacesScope import com.android.systemui.statusbar.policy.Clock import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.statusbar.policy.NextAlarmController @@ -79,7 +79,7 @@ import javax.inject.Named * * [LARGE_SCREEN_HEADER_TRANSITION_ID]: [LARGE_SCREEN_HEADER_CONSTRAINT] for all other * configurations */ -@CentralSurfacesScope +@SysUISingleton class ShadeHeaderController @Inject constructor(