From 1a04915ca68170d1c109c0657e5d39388e5bfba7 Mon Sep 17 00:00:00 2001 From: Caitlin Shkuratov Date: Tue, 25 Apr 2023 14:30:54 +0000 Subject: [PATCH] [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