diff --git a/packages/SystemUI/src/com/android/systemui/dagger/ReferenceSystemUIModule.java b/packages/SystemUI/src/com/android/systemui/dagger/ReferenceSystemUIModule.java index a99669970a348..48bef97c30fba 100644 --- a/packages/SystemUI/src/com/android/systemui/dagger/ReferenceSystemUIModule.java +++ b/packages/SystemUI/src/com/android/systemui/dagger/ReferenceSystemUIModule.java @@ -22,25 +22,19 @@ import static com.android.systemui.Dependency.LEAK_REPORT_EMAIL_NAME; import android.content.Context; import android.hardware.SensorPrivacyManager; import android.os.Handler; -import android.os.PowerManager; import androidx.annotation.Nullable; import com.android.internal.logging.UiEventLogger; import com.android.keyguard.KeyguardViewController; -import com.android.systemui.broadcast.BroadcastDispatcher; -import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dagger.qualifiers.Main; -import com.android.systemui.demomode.DemoModeController; import com.android.systemui.dock.DockManager; import com.android.systemui.dock.DockManagerImpl; import com.android.systemui.doze.DozeHost; -import com.android.systemui.dump.DumpManager; import com.android.systemui.media.dagger.MediaModule; import com.android.systemui.navigationbar.gestural.GestureModule; import com.android.systemui.plugins.qs.QSFactory; import com.android.systemui.plugins.statusbar.StatusBarStateController; -import com.android.systemui.power.EnhancedEstimates; import com.android.systemui.power.dagger.PowerModule; import com.android.systemui.qs.dagger.QSModule; import com.android.systemui.qs.tileimpl.QSFactoryImpl; @@ -62,8 +56,7 @@ import com.android.systemui.statusbar.phone.HeadsUpManagerPhone; import com.android.systemui.statusbar.phone.KeyguardBypassController; import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper; -import com.android.systemui.statusbar.policy.BatteryController; -import com.android.systemui.statusbar.policy.BatteryControllerImpl; +import com.android.systemui.statusbar.policy.AospPolicyModule; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.DeviceProvisionedController; import com.android.systemui.statusbar.policy.DeviceProvisionedControllerImpl; @@ -97,6 +90,7 @@ import dagger.Provides; * SystemUI code that variants of SystemUI _must_ include to function correctly. */ @Module(includes = { + AospPolicyModule.class, GestureModule.class, MediaModule.class, PowerModule.class, @@ -119,30 +113,6 @@ public abstract class ReferenceSystemUIModule { abstract NotificationLockscreenUserManager bindNotificationLockscreenUserManager( NotificationLockscreenUserManagerImpl notificationLockscreenUserManager); - @Provides - @SysUISingleton - static BatteryController provideBatteryController( - Context context, - EnhancedEstimates enhancedEstimates, - PowerManager powerManager, - BroadcastDispatcher broadcastDispatcher, - DemoModeController demoModeController, - DumpManager dumpManager, - @Main Handler mainHandler, - @Background Handler bgHandler) { - BatteryController bC = new BatteryControllerImpl( - context, - enhancedEstimates, - powerManager, - broadcastDispatcher, - demoModeController, - dumpManager, - mainHandler, - bgHandler); - bC.init(); - return bC; - } - @Provides @SysUISingleton static SensorPrivacyController provideSensorPrivacyController( diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/AospPolicyModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/AospPolicyModule.java new file mode 100644 index 0000000000000..ba5fa1df4b150 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/AospPolicyModule.java @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.statusbar.policy; + +import android.content.Context; +import android.os.Handler; +import android.os.PowerManager; + +import com.android.systemui.broadcast.BroadcastDispatcher; +import com.android.systemui.dagger.SysUISingleton; +import com.android.systemui.dagger.qualifiers.Background; +import com.android.systemui.dagger.qualifiers.Main; +import com.android.systemui.demomode.DemoModeController; +import com.android.systemui.dump.DumpManager; +import com.android.systemui.power.EnhancedEstimates; + +import dagger.Module; +import dagger.Provides; + +/** + * com.android.systemui.statusbar.policy related providers that others may want to override. + */ +@Module +public class AospPolicyModule { + @Provides + @SysUISingleton + static BatteryController provideBatteryController( + Context context, + EnhancedEstimates enhancedEstimates, + PowerManager powerManager, + BroadcastDispatcher broadcastDispatcher, + DemoModeController demoModeController, + DumpManager dumpManager, + @Main Handler mainHandler, + @Background Handler bgHandler) { + BatteryController bC = new BatteryControllerImpl( + context, + enhancedEstimates, + powerManager, + broadcastDispatcher, + demoModeController, + dumpManager, + mainHandler, + bgHandler); + bC.init(); + return bC; + } +} diff --git a/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIModule.java b/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIModule.java index 00ed3d635fa14..3ce5ca3d03010 100644 --- a/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIModule.java +++ b/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIModule.java @@ -22,25 +22,20 @@ import static com.android.systemui.Dependency.LEAK_REPORT_EMAIL_NAME; import android.content.Context; import android.hardware.SensorPrivacyManager; import android.os.Handler; -import android.os.PowerManager; import androidx.annotation.Nullable; import com.android.internal.logging.UiEventLogger; import com.android.keyguard.KeyguardViewController; -import com.android.systemui.broadcast.BroadcastDispatcher; +import com.android.systemui.dagger.ReferenceSystemUIModule; import com.android.systemui.dagger.SysUISingleton; -import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dagger.qualifiers.Main; -import com.android.systemui.demomode.DemoModeController; import com.android.systemui.dock.DockManager; import com.android.systemui.dock.DockManagerImpl; import com.android.systemui.doze.DozeHost; -import com.android.systemui.dump.DumpManager; import com.android.systemui.navigationbar.gestural.GestureModule; import com.android.systemui.plugins.qs.QSFactory; import com.android.systemui.plugins.statusbar.StatusBarStateController; -import com.android.systemui.power.EnhancedEstimates; import com.android.systemui.power.dagger.PowerModule; import com.android.systemui.privacy.MediaProjectionPrivacyItemMonitor; import com.android.systemui.privacy.PrivacyItemMonitor; @@ -64,8 +59,7 @@ import com.android.systemui.statusbar.phone.HeadsUpManagerPhone; import com.android.systemui.statusbar.phone.KeyguardBypassController; import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper; -import com.android.systemui.statusbar.policy.BatteryController; -import com.android.systemui.statusbar.policy.BatteryControllerImpl; +import com.android.systemui.statusbar.policy.AospPolicyModule; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.DeviceProvisionedController; import com.android.systemui.statusbar.policy.DeviceProvisionedControllerImpl; @@ -86,18 +80,21 @@ import dagger.Provides; import dagger.multibindings.IntoSet; /** - * A dagger module for injecting default implementations of components of System UI that may be - * overridden by the System UI implementation. + * A TV specific version of {@link ReferenceSystemUIModule}. + * + * Code here should be specific to the TV variant of SystemUI and will not be included in other + * variants of SystemUI. */ -@Module(includes = { - GestureModule.class, - PowerModule.class, - QSModule.class, - ReferenceScreenshotModule.class, - VolumeModule.class, - }, - subcomponents = { - }) +@Module( + includes = { + AospPolicyModule.class, + GestureModule.class, + PowerModule.class, + QSModule.class, + ReferenceScreenshotModule.class, + VolumeModule.class, + } +) public abstract class TvSystemUIModule { @SysUISingleton @@ -112,21 +109,6 @@ public abstract class TvSystemUIModule { abstract NotificationLockscreenUserManager bindNotificationLockscreenUserManager( NotificationLockscreenUserManagerImpl notificationLockscreenUserManager); - @Provides - @SysUISingleton - static BatteryController provideBatteryController(Context context, - EnhancedEstimates enhancedEstimates, PowerManager powerManager, - BroadcastDispatcher broadcastDispatcher, DemoModeController demoModeController, - DumpManager dumpManager, - @Main Handler mainHandler, @Background Handler bgHandler) { - BatteryController bC = new BatteryControllerImpl(context, enhancedEstimates, powerManager, - broadcastDispatcher, demoModeController, - dumpManager, - mainHandler, bgHandler); - bC.init(); - return bC; - } - @Provides @SysUISingleton static SensorPrivacyController provideSensorPrivacyController(