Loading packages/SystemUI/src/com/android/systemui/Dependency.java +0 −16 Original line number Diff line number Diff line Loading @@ -597,11 +597,6 @@ public class Dependency { if (obj == null) { obj = createDependency(key); mDependencies.put(key, obj); // TODO: Get dependencies to register themselves instead if (autoRegisterModulesForDump() && obj instanceof Dumpable) { mDumpManager.registerDumpable(obj.getClass().getName(), (Dumpable) obj); } } return obj; } Loading @@ -619,17 +614,6 @@ public class Dependency { return provider.createDependency(); } // Currently, there are situations in tests where we might create more than one instance of a // thing that should be a singleton: the "real" one (created by Dagger, usually as a result of // inflating a view), and a mocked one (injected into Dependency). If we register the mocked // one, the DumpManager will throw an exception complaining (rightly) that we have too many // things registered with that name. So in tests, we disable the auto-registration until the // root cause is fixed, i.e. inflated views in tests with Dagger dependencies. @VisibleForTesting protected boolean autoRegisterModulesForDump() { return true; } private static Dependency sDependency; /** Loading packages/SystemUI/src/com/android/systemui/ForegroundServiceController.java +2 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,8 @@ public class ForegroundServiceController { private final Handler mMainHandler; @Inject public ForegroundServiceController(AppOpsController appOpsController, public ForegroundServiceController( AppOpsController appOpsController, @Main Handler mainHandler) { mMainHandler = mainHandler; appOpsController.addCallback(APP_OPS, (code, uid, packageName, active) -> { Loading packages/SystemUI/src/com/android/systemui/colorextraction/SysuiColorExtractor.java +19 −5 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import com.android.internal.colorextraction.types.Tonal; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.systemui.Dumpable; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dump.DumpManager; import com.android.systemui.statusbar.policy.ConfigurationController; import java.io.FileDescriptor; Loading @@ -50,19 +51,32 @@ public class SysuiColorExtractor extends ColorExtractor implements Dumpable, private final GradientColors mBackdropColors; @Inject public SysuiColorExtractor(Context context, ConfigurationController configurationController) { this(context, new Tonal(context), configurationController, context.getSystemService(WallpaperManager.class), false /* immediately */); public SysuiColorExtractor( Context context, ConfigurationController configurationController, DumpManager dumpManager) { this( context, new Tonal(context), configurationController, context.getSystemService(WallpaperManager.class), dumpManager, false /* immediately */); } @VisibleForTesting public SysuiColorExtractor(Context context, ExtractionType type, public SysuiColorExtractor( Context context, ExtractionType type, ConfigurationController configurationController, WallpaperManager wallpaperManager, boolean immediately) { WallpaperManager wallpaperManager, DumpManager dumpManager, boolean immediately) { super(context, type, immediately, wallpaperManager); mTonal = type instanceof Tonal ? (Tonal) type : new Tonal(context); mNeutralColorsLock = new GradientColors(); configurationController.addCallback(this); dumpManager.registerDumpable(getClass().getSimpleName(), this); mBackdropColors = new GradientColors(); mBackdropColors.setMainColor(Color.BLACK); Loading packages/SystemUI/src/com/android/systemui/dagger/DependencyProvider.java +4 −93 Original line number Diff line number Diff line Loading @@ -36,11 +36,8 @@ import android.os.UserHandle; import android.view.Choreographer; import android.view.IWindowManager; import android.view.LayoutInflater; import android.view.WindowManager; import android.view.accessibility.AccessibilityManager; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.UiEventLogger; import com.android.internal.util.NotificationMessagingUtil; import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.KeyguardUpdateMonitor; Loading @@ -51,9 +48,7 @@ import com.android.systemui.R; import com.android.systemui.accessibility.AccessibilityButtonModeObserver; import com.android.systemui.accessibility.AccessibilityButtonTargetsObserver; import com.android.systemui.accessibility.ModeSwitchesController; import com.android.systemui.accessibility.SystemActions; import com.android.systemui.accessibility.floatingmenu.AccessibilityFloatingMenuController; import com.android.systemui.assist.AssistManager; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.broadcast.logging.BroadcastDispatcherLogger; import com.android.systemui.dagger.qualifiers.Background; Loading @@ -62,48 +57,28 @@ import com.android.systemui.doze.AlwaysOnDisplayPolicy; import com.android.systemui.dump.DumpManager; import com.android.systemui.keyguard.KeyguardViewMediator; import com.android.systemui.keyguard.LifecycleScreenStatusProvider; import com.android.systemui.model.SysUiState; import com.android.systemui.navigationbar.NavigationBarA11yHelper; import com.android.systemui.navigationbar.NavigationBarController; import com.android.systemui.navigationbar.NavigationBarOverlayController; import com.android.systemui.navigationbar.NavigationModeController; import com.android.systemui.navigationbar.TaskbarDelegate; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.qs.ReduceBrightColorsController; import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.recents.Recents; import com.android.systemui.settings.UserTracker; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.DevicePolicyManagerWrapper; import com.android.systemui.shared.system.TaskStackChangeListeners; import com.android.systemui.shared.system.WindowManagerWrapper; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.NotificationRemoteInputManager; import com.android.systemui.statusbar.NotificationShadeDepthController; import com.android.systemui.statusbar.phone.AutoHideController; import com.android.systemui.statusbar.phone.ConfigurationControllerImpl; import com.android.systemui.statusbar.phone.ShadeController; import com.android.systemui.statusbar.phone.StatusBar; import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.DataSaverController; import com.android.systemui.statusbar.policy.DeviceProvisionedController; import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.theme.ThemeOverlayApplier; import com.android.systemui.util.leak.LeakDetector; import com.android.systemui.util.settings.SecureSettings; import com.android.systemui.unfold.UnfoldTransitionFactory; import com.android.systemui.unfold.UnfoldTransitionProgressProvider; import com.android.systemui.unfold.config.UnfoldTransitionConfig; import com.android.wm.shell.legacysplitscreen.LegacySplitScreen; import com.android.wm.shell.pip.Pip; import com.android.systemui.util.leak.LeakDetector; import com.android.systemui.util.settings.SecureSettings; import java.util.Optional; import java.util.concurrent.Executor; import javax.inject.Named; import dagger.Lazy; import dagger.Module; import dagger.Provides; Loading Loading @@ -171,9 +146,8 @@ public class DependencyProvider { /** */ @Provides @SysUISingleton public LeakDetector provideLeakDetector() { return LeakDetector.create(); public LeakDetector provideLeakDetector(DumpManager dumpManager) { return LeakDetector.create(dumpManager); } @SuppressLint("MissingPermission") Loading Loading @@ -205,69 +179,6 @@ public class DependencyProvider { context.getString(R.string.themepicker_overlayable_package), dumpManager); } /** */ @Provides @SysUISingleton public NavigationBarController provideNavigationBarController(Context context, WindowManager windowManager, Lazy<AssistManager> assistManagerLazy, AccessibilityManager accessibilityManager, AccessibilityManagerWrapper accessibilityManagerWrapper, DeviceProvisionedController deviceProvisionedController, MetricsLogger metricsLogger, OverviewProxyService overviewProxyService, NavigationModeController navigationModeController, AccessibilityButtonModeObserver accessibilityButtonModeObserver, StatusBarStateController statusBarStateController, SysUiState sysUiFlagsContainer, BroadcastDispatcher broadcastDispatcher, CommandQueue commandQueue, Optional<Pip> pipOptional, Optional<LegacySplitScreen> splitScreenOptional, Optional<Recents> recentsOptional, Lazy<Optional<StatusBar>> statusBarOptionalLazy, ShadeController shadeController, NotificationRemoteInputManager notificationRemoteInputManager, NotificationShadeDepthController notificationShadeDepthController, SystemActions systemActions, @Main Handler mainHandler, UiEventLogger uiEventLogger, NavigationBarOverlayController navBarOverlayController, ConfigurationController configurationController, NavigationBarA11yHelper navigationBarA11yHelper, TaskbarDelegate taskbarDelegate, UserTracker userTracker) { return new NavigationBarController(context, windowManager, assistManagerLazy, accessibilityManager, accessibilityManagerWrapper, deviceProvisionedController, metricsLogger, overviewProxyService, navigationModeController, accessibilityButtonModeObserver, statusBarStateController, sysUiFlagsContainer, broadcastDispatcher, commandQueue, pipOptional, splitScreenOptional, recentsOptional, statusBarOptionalLazy, shadeController, notificationRemoteInputManager, notificationShadeDepthController, systemActions, mainHandler, uiEventLogger, navBarOverlayController, configurationController, navigationBarA11yHelper, taskbarDelegate, userTracker); } /** */ @Provides @SysUISingleton Loading packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java +4 −2 Original line number Diff line number Diff line Loading @@ -143,8 +143,10 @@ public abstract class SystemUIModule { @SysUISingleton @Provides static SysUiState provideSysUiState() { return new SysUiState(); static SysUiState provideSysUiState(DumpManager dumpManager) { final SysUiState state = new SysUiState(); dumpManager.registerDumpable(state); return state; } @BindsOptionalOf Loading Loading
packages/SystemUI/src/com/android/systemui/Dependency.java +0 −16 Original line number Diff line number Diff line Loading @@ -597,11 +597,6 @@ public class Dependency { if (obj == null) { obj = createDependency(key); mDependencies.put(key, obj); // TODO: Get dependencies to register themselves instead if (autoRegisterModulesForDump() && obj instanceof Dumpable) { mDumpManager.registerDumpable(obj.getClass().getName(), (Dumpable) obj); } } return obj; } Loading @@ -619,17 +614,6 @@ public class Dependency { return provider.createDependency(); } // Currently, there are situations in tests where we might create more than one instance of a // thing that should be a singleton: the "real" one (created by Dagger, usually as a result of // inflating a view), and a mocked one (injected into Dependency). If we register the mocked // one, the DumpManager will throw an exception complaining (rightly) that we have too many // things registered with that name. So in tests, we disable the auto-registration until the // root cause is fixed, i.e. inflated views in tests with Dagger dependencies. @VisibleForTesting protected boolean autoRegisterModulesForDump() { return true; } private static Dependency sDependency; /** Loading
packages/SystemUI/src/com/android/systemui/ForegroundServiceController.java +2 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,8 @@ public class ForegroundServiceController { private final Handler mMainHandler; @Inject public ForegroundServiceController(AppOpsController appOpsController, public ForegroundServiceController( AppOpsController appOpsController, @Main Handler mainHandler) { mMainHandler = mainHandler; appOpsController.addCallback(APP_OPS, (code, uid, packageName, active) -> { Loading
packages/SystemUI/src/com/android/systemui/colorextraction/SysuiColorExtractor.java +19 −5 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import com.android.internal.colorextraction.types.Tonal; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.systemui.Dumpable; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dump.DumpManager; import com.android.systemui.statusbar.policy.ConfigurationController; import java.io.FileDescriptor; Loading @@ -50,19 +51,32 @@ public class SysuiColorExtractor extends ColorExtractor implements Dumpable, private final GradientColors mBackdropColors; @Inject public SysuiColorExtractor(Context context, ConfigurationController configurationController) { this(context, new Tonal(context), configurationController, context.getSystemService(WallpaperManager.class), false /* immediately */); public SysuiColorExtractor( Context context, ConfigurationController configurationController, DumpManager dumpManager) { this( context, new Tonal(context), configurationController, context.getSystemService(WallpaperManager.class), dumpManager, false /* immediately */); } @VisibleForTesting public SysuiColorExtractor(Context context, ExtractionType type, public SysuiColorExtractor( Context context, ExtractionType type, ConfigurationController configurationController, WallpaperManager wallpaperManager, boolean immediately) { WallpaperManager wallpaperManager, DumpManager dumpManager, boolean immediately) { super(context, type, immediately, wallpaperManager); mTonal = type instanceof Tonal ? (Tonal) type : new Tonal(context); mNeutralColorsLock = new GradientColors(); configurationController.addCallback(this); dumpManager.registerDumpable(getClass().getSimpleName(), this); mBackdropColors = new GradientColors(); mBackdropColors.setMainColor(Color.BLACK); Loading
packages/SystemUI/src/com/android/systemui/dagger/DependencyProvider.java +4 −93 Original line number Diff line number Diff line Loading @@ -36,11 +36,8 @@ import android.os.UserHandle; import android.view.Choreographer; import android.view.IWindowManager; import android.view.LayoutInflater; import android.view.WindowManager; import android.view.accessibility.AccessibilityManager; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.UiEventLogger; import com.android.internal.util.NotificationMessagingUtil; import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.KeyguardUpdateMonitor; Loading @@ -51,9 +48,7 @@ import com.android.systemui.R; import com.android.systemui.accessibility.AccessibilityButtonModeObserver; import com.android.systemui.accessibility.AccessibilityButtonTargetsObserver; import com.android.systemui.accessibility.ModeSwitchesController; import com.android.systemui.accessibility.SystemActions; import com.android.systemui.accessibility.floatingmenu.AccessibilityFloatingMenuController; import com.android.systemui.assist.AssistManager; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.broadcast.logging.BroadcastDispatcherLogger; import com.android.systemui.dagger.qualifiers.Background; Loading @@ -62,48 +57,28 @@ import com.android.systemui.doze.AlwaysOnDisplayPolicy; import com.android.systemui.dump.DumpManager; import com.android.systemui.keyguard.KeyguardViewMediator; import com.android.systemui.keyguard.LifecycleScreenStatusProvider; import com.android.systemui.model.SysUiState; import com.android.systemui.navigationbar.NavigationBarA11yHelper; import com.android.systemui.navigationbar.NavigationBarController; import com.android.systemui.navigationbar.NavigationBarOverlayController; import com.android.systemui.navigationbar.NavigationModeController; import com.android.systemui.navigationbar.TaskbarDelegate; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.qs.ReduceBrightColorsController; import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.recents.Recents; import com.android.systemui.settings.UserTracker; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.DevicePolicyManagerWrapper; import com.android.systemui.shared.system.TaskStackChangeListeners; import com.android.systemui.shared.system.WindowManagerWrapper; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.NotificationRemoteInputManager; import com.android.systemui.statusbar.NotificationShadeDepthController; import com.android.systemui.statusbar.phone.AutoHideController; import com.android.systemui.statusbar.phone.ConfigurationControllerImpl; import com.android.systemui.statusbar.phone.ShadeController; import com.android.systemui.statusbar.phone.StatusBar; import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.DataSaverController; import com.android.systemui.statusbar.policy.DeviceProvisionedController; import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.theme.ThemeOverlayApplier; import com.android.systemui.util.leak.LeakDetector; import com.android.systemui.util.settings.SecureSettings; import com.android.systemui.unfold.UnfoldTransitionFactory; import com.android.systemui.unfold.UnfoldTransitionProgressProvider; import com.android.systemui.unfold.config.UnfoldTransitionConfig; import com.android.wm.shell.legacysplitscreen.LegacySplitScreen; import com.android.wm.shell.pip.Pip; import com.android.systemui.util.leak.LeakDetector; import com.android.systemui.util.settings.SecureSettings; import java.util.Optional; import java.util.concurrent.Executor; import javax.inject.Named; import dagger.Lazy; import dagger.Module; import dagger.Provides; Loading Loading @@ -171,9 +146,8 @@ public class DependencyProvider { /** */ @Provides @SysUISingleton public LeakDetector provideLeakDetector() { return LeakDetector.create(); public LeakDetector provideLeakDetector(DumpManager dumpManager) { return LeakDetector.create(dumpManager); } @SuppressLint("MissingPermission") Loading Loading @@ -205,69 +179,6 @@ public class DependencyProvider { context.getString(R.string.themepicker_overlayable_package), dumpManager); } /** */ @Provides @SysUISingleton public NavigationBarController provideNavigationBarController(Context context, WindowManager windowManager, Lazy<AssistManager> assistManagerLazy, AccessibilityManager accessibilityManager, AccessibilityManagerWrapper accessibilityManagerWrapper, DeviceProvisionedController deviceProvisionedController, MetricsLogger metricsLogger, OverviewProxyService overviewProxyService, NavigationModeController navigationModeController, AccessibilityButtonModeObserver accessibilityButtonModeObserver, StatusBarStateController statusBarStateController, SysUiState sysUiFlagsContainer, BroadcastDispatcher broadcastDispatcher, CommandQueue commandQueue, Optional<Pip> pipOptional, Optional<LegacySplitScreen> splitScreenOptional, Optional<Recents> recentsOptional, Lazy<Optional<StatusBar>> statusBarOptionalLazy, ShadeController shadeController, NotificationRemoteInputManager notificationRemoteInputManager, NotificationShadeDepthController notificationShadeDepthController, SystemActions systemActions, @Main Handler mainHandler, UiEventLogger uiEventLogger, NavigationBarOverlayController navBarOverlayController, ConfigurationController configurationController, NavigationBarA11yHelper navigationBarA11yHelper, TaskbarDelegate taskbarDelegate, UserTracker userTracker) { return new NavigationBarController(context, windowManager, assistManagerLazy, accessibilityManager, accessibilityManagerWrapper, deviceProvisionedController, metricsLogger, overviewProxyService, navigationModeController, accessibilityButtonModeObserver, statusBarStateController, sysUiFlagsContainer, broadcastDispatcher, commandQueue, pipOptional, splitScreenOptional, recentsOptional, statusBarOptionalLazy, shadeController, notificationRemoteInputManager, notificationShadeDepthController, systemActions, mainHandler, uiEventLogger, navBarOverlayController, configurationController, navigationBarA11yHelper, taskbarDelegate, userTracker); } /** */ @Provides @SysUISingleton Loading
packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java +4 −2 Original line number Diff line number Diff line Loading @@ -143,8 +143,10 @@ public abstract class SystemUIModule { @SysUISingleton @Provides static SysUiState provideSysUiState() { return new SysUiState(); static SysUiState provideSysUiState(DumpManager dumpManager) { final SysUiState state = new SysUiState(); dumpManager.registerDumpable(state); return state; } @BindsOptionalOf Loading