diff options
59 files changed, 321 insertions, 195 deletions
diff --git a/packages/CarSystemUI/res/values/config.xml b/packages/CarSystemUI/res/values/config.xml index 329225cf94fb..981c129a0965 100644 --- a/packages/CarSystemUI/res/values/config.xml +++ b/packages/CarSystemUI/res/values/config.xml @@ -58,7 +58,6 @@ <!-- SystemUI Services: The classes of the stuff to start. --> <string-array name="config_systemUIServiceComponents" translatable="false"> <item>com.android.systemui.util.NotificationChannels</item> - <item>com.android.systemui.statusbar.CommandQueue$CommandQueueStart</item> <item>com.android.systemui.keyguard.KeyguardViewMediator</item> <item>com.android.systemui.recents.Recents</item> <item>com.android.systemui.volume.VolumeUI</item> diff --git a/packages/CarSystemUI/src/com/android/systemui/CarSystemUIBinder.java b/packages/CarSystemUI/src/com/android/systemui/CarSystemUIBinder.java index 59b1068fb7b2..57e7fb374cf5 100644 --- a/packages/CarSystemUI/src/com/android/systemui/CarSystemUIBinder.java +++ b/packages/CarSystemUI/src/com/android/systemui/CarSystemUIBinder.java @@ -26,10 +26,12 @@ import com.android.internal.logging.MetricsLogger; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.systemui.appops.AppOpsController; import com.android.systemui.assist.AssistManager; +import com.android.systemui.biometrics.AuthController; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.bubbles.BubbleController; import com.android.systemui.colorextraction.SysuiColorExtractor; import com.android.systemui.doze.DozeLog; +import com.android.systemui.globalactions.GlobalActionsComponent; import com.android.systemui.keyguard.KeyguardViewMediator; import com.android.systemui.keyguard.ScreenLifecycle; import com.android.systemui.keyguard.WakefulnessLifecycle; @@ -40,6 +42,7 @@ import com.android.systemui.plugins.FalsingManager; import com.android.systemui.power.PowerUI; import com.android.systemui.recents.Recents; import com.android.systemui.recents.RecentsModule; +import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.FeatureFlags; import com.android.systemui.statusbar.NavigationBarController; import com.android.systemui.statusbar.NotificationListener; @@ -53,6 +56,7 @@ import com.android.systemui.statusbar.VibratorHelper; import com.android.systemui.statusbar.car.CarStatusBar; import com.android.systemui.statusbar.notification.BypassHeadsUpNotifier; import com.android.systemui.statusbar.notification.DynamicPrivacyController; +import com.android.systemui.statusbar.notification.InstantAppNotifier; import com.android.systemui.statusbar.notification.NewNotifPipeline; import com.android.systemui.statusbar.notification.NotificationAlertingManager; import com.android.systemui.statusbar.notification.NotificationEntryManager; @@ -86,6 +90,7 @@ import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler; import com.android.systemui.statusbar.policy.UserSwitcherController; import com.android.systemui.statusbar.policy.ZenModeController; +import com.android.systemui.statusbar.tv.TvStatusBar; import com.android.systemui.util.InjectionInflationController; import com.android.systemui.util.leak.GarbageMonitor; import com.android.systemui.volume.VolumeUI; @@ -103,6 +108,12 @@ import dagger.multibindings.IntoMap; /** Binder for car specific {@link SystemUI} modules. */ @Module(includes = {RecentsModule.class}) public abstract class CarSystemUIBinder { + /** Inject into AuthController. */ + @Binds + @IntoMap + @ClassKey(AuthController.class) + public abstract SystemUI bindAuthController(AuthController service); + /** */ @Binds @IntoMap @@ -115,6 +126,18 @@ public abstract class CarSystemUIBinder { @ClassKey(GarbageMonitor.Service.class) public abstract SystemUI bindGarbageMonitorService(GarbageMonitor.Service service); + /** Inject into GlobalActionsComponent. */ + @Binds + @IntoMap + @ClassKey(GlobalActionsComponent.class) + public abstract SystemUI bindGlobalActionsComponent(GlobalActionsComponent sysui); + + /** Inject into InstantAppNotifier. */ + @Binds + @IntoMap + @ClassKey(InstantAppNotifier.class) + public abstract SystemUI bindInstantAppNotifier(InstantAppNotifier sysui); + /** Inject into KeyguardViewMediator. */ @Binds @IntoMap @@ -151,12 +174,25 @@ public abstract class CarSystemUIBinder { @ClassKey(ScreenDecorations.class) public abstract SystemUI bindScreenDecorations(ScreenDecorations sysui); + /** Inject into SizeCompatModeActivityController. */ + @Binds + @IntoMap + @ClassKey(SizeCompatModeActivityController.class) + public abstract SystemUI bindsSizeCompatModeActivityController( + SizeCompatModeActivityController sysui); + /** Inject into StatusBar. */ @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 @@ -238,6 +274,7 @@ public abstract class CarSystemUIBinder { DozeServiceHost dozeServiceHost, PowerManager powerManager, DozeScrimController dozeScrimController, + CommandQueue commandQueue, CarNavigationBarController carNavigationBarController) { return new CarStatusBar( context, @@ -303,6 +340,7 @@ public abstract class CarSystemUIBinder { dozeServiceHost, powerManager, dozeScrimController, + commandQueue, carNavigationBarController); } } diff --git a/packages/CarSystemUI/src/com/android/systemui/navigationbar/car/CarNavigationBarView.java b/packages/CarSystemUI/src/com/android/systemui/navigationbar/car/CarNavigationBarView.java index c2455088a52b..28da16932fc4 100644 --- a/packages/CarSystemUI/src/com/android/systemui/navigationbar/car/CarNavigationBarView.java +++ b/packages/CarSystemUI/src/com/android/systemui/navigationbar/car/CarNavigationBarView.java @@ -25,6 +25,7 @@ import android.widget.LinearLayout; import com.android.systemui.Dependency; import com.android.systemui.R; import com.android.systemui.navigationbar.car.CarNavigationBarController.NotificationsShadeController; +import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.phone.StatusBarIconController; /** @@ -63,7 +64,8 @@ public class CarNavigationBarView extends LinearLayout { // container is in the view. StatusBarIconController.DarkIconManager mDarkIconManager = new StatusBarIconController.DarkIconManager( - mStatusIcons.findViewById(R.id.statusIcons)); + mStatusIcons.findViewById(R.id.statusIcons), + Dependency.get(CommandQueue.class)); mDarkIconManager.setShouldLog(true); Dependency.get(StatusBarIconController.class).addIconGroup(mDarkIconManager); } diff --git a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java index 34c920fa5f24..a463d3780265 100644 --- a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java +++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java @@ -80,6 +80,7 @@ import com.android.systemui.navigationbar.car.CarNavigationBarView; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.qs.QS; import com.android.systemui.qs.car.CarQSFragment; +import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.FeatureFlags; import com.android.systemui.statusbar.FlingAnimationUtils; import com.android.systemui.statusbar.NavigationBarController; @@ -297,7 +298,7 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt DozeServiceHost dozeServiceHost, PowerManager powerManager, DozeScrimController dozeScrimController, - + CommandQueue commandQueue, /* Car Settings injected components. */ CarNavigationBarController carNavigationBarController) { super( @@ -364,7 +365,8 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt biometricUnlockControllerLazy, dozeServiceHost, powerManager, - dozeScrimController); + dozeScrimController, + commandQueue); mScrimController = scrimController; mCarNavigationBarController = carNavigationBarController; } diff --git a/packages/SystemUI/README.md b/packages/SystemUI/README.md index a3d420ee4cdf..a4dbf38d8782 100644 --- a/packages/SystemUI/README.md +++ b/packages/SystemUI/README.md @@ -80,11 +80,6 @@ Provides custom dependency injection. Creates/initializes the channels sysui uses when posting notifications. -### [com.android.systemui.statusbar.CommandQueue$CommandQueueStart](/packages/SystemUI/src/com/android/systemui/sstatusbar/CommandQueue.java) - -Creates CommandQueue and calls putComponent because its always been there -and sysui expects it to be there :/ - ### [com.android.systemui.keyguard.KeyguardViewMediator](/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java) Manages keyguard view state. diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml index 41c34361cf70..dff21cfd2c22 100644 --- a/packages/SystemUI/res/values/config.xml +++ b/packages/SystemUI/res/values/config.xml @@ -274,7 +274,6 @@ <!-- SystemUI Services: The classes of the stuff to start. --> <string-array name="config_systemUIServiceComponents" translatable="false"> <item>com.android.systemui.util.NotificationChannels</item> - <item>com.android.systemui.statusbar.CommandQueue$CommandQueueStart</item> <item>com.android.systemui.keyguard.KeyguardViewMediator</item> <item>com.android.systemui.recents.Recents</item> <item>com.android.systemui.volume.VolumeUI</item> diff --git a/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java b/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java index ce61a00fefc3..fef9198d670a 100644 --- a/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java +++ b/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java @@ -54,6 +54,7 @@ import com.android.settingslib.graph.ThemedBatteryDrawable; import com.android.systemui.plugins.DarkIconDispatcher; import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver; import com.android.systemui.settings.CurrentUserTracker; +import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.phone.StatusBarIconController; import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback; @@ -139,7 +140,8 @@ public class BatteryMeterView extends LinearLayout implements addOnAttachStateChangeListener( - new DisableStateTracker(DISABLE_NONE, DISABLE2_SYSTEM_ICONS)); + new DisableStateTracker(DISABLE_NONE, DISABLE2_SYSTEM_ICONS, + Dependency.get(CommandQueue.class))); setupLayoutTransition(); diff --git a/packages/SystemUI/src/com/android/systemui/Dependency.java b/packages/SystemUI/src/com/android/systemui/Dependency.java index 486d02c207db..b3f32afee43e 100644 --- a/packages/SystemUI/src/com/android/systemui/Dependency.java +++ b/packages/SystemUI/src/com/android/systemui/Dependency.java @@ -63,6 +63,7 @@ import com.android.systemui.shared.plugins.PluginManager; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.DevicePolicyManagerWrapper; import com.android.systemui.shared.system.PackageManagerWrapper; +import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.NavigationBarController; import com.android.systemui.statusbar.NotificationListener; import com.android.systemui.statusbar.NotificationLockscreenUserManager; @@ -326,6 +327,7 @@ public class Dependency { @Inject Lazy<KeyguardSecurityModel> mKeyguardSecurityModel; @Inject Lazy<DozeParameters> mDozeParameters; @Inject Lazy<IWallpaperManager> mWallpaperManager; + @Inject Lazy<CommandQueue> mCommandQueue; @Inject public Dependency() { @@ -514,6 +516,7 @@ public class Dependency { mProviders.put(KeyguardSecurityModel.class, mKeyguardSecurityModel::get); mProviders.put(DozeParameters.class, mDozeParameters::get); mProviders.put(IWallpaperManager.class, mWallpaperManager::get); + mProviders.put(CommandQueue.class, mCommandQueue::get); // TODO(b/118592525): to support multi-display , we start to add something which is // per-display, while others may be global. I think it's time to add diff --git a/packages/SystemUI/src/com/android/systemui/SizeCompatModeActivityController.java b/packages/SystemUI/src/com/android/systemui/SizeCompatModeActivityController.java index 10009f5f5582..72a403035294 100644 --- a/packages/SystemUI/src/com/android/systemui/SizeCompatModeActivityController.java +++ b/packages/SystemUI/src/com/android/systemui/SizeCompatModeActivityController.java @@ -47,7 +47,11 @@ import com.android.systemui.statusbar.CommandQueue; import java.lang.ref.WeakReference; +import javax.inject.Inject; +import javax.inject.Singleton; + /** Shows a restart-activity button when the foreground activity is in size compatibility mode. */ +@Singleton public class SizeCompatModeActivityController extends SystemUI implements CommandQueue.Callbacks { private static final String TAG = "SizeCompatMode"; @@ -55,17 +59,17 @@ public class SizeCompatModeActivityController extends SystemUI implements Comman private final SparseArray<RestartActivityButton> mActiveButtons = new SparseArray<>(1); /** Avoid creating display context frequently for non-default display. */ private final SparseArray<WeakReference<Context>> mDisplayContextCache = new SparseArray<>(0); + private final CommandQueue mCommandQueue; /** Only show once automatically in the process life. */ private boolean mHasShownHint; - public SizeCompatModeActivityController(Context context) { - this(context, ActivityManagerWrapper.getInstance()); - } - @VisibleForTesting - SizeCompatModeActivityController(Context context, ActivityManagerWrapper am) { + @Inject + SizeCompatModeActivityController(Context context, ActivityManagerWrapper am, + CommandQueue commandQueue) { super(context); + mCommandQueue = commandQueue; am.registerTaskStackListener(new TaskStackChangeListener() { @Override public void onSizeCompatModeActivityChanged(int displayId, IBinder activityToken) { @@ -77,7 +81,7 @@ public class SizeCompatModeActivityController extends SystemUI implements Comman @Override public void start() { - SysUiServiceProvider.getComponent(mContext, CommandQueue.class).addCallback(this); + mCommandQueue.addCallback(this); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java b/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java index 1f950f60fd6a..b7a6167df6bc 100644 --- a/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java +++ b/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java @@ -44,7 +44,6 @@ import com.android.settingslib.applications.InterestingConfigChanges; import com.android.systemui.ConfigurationChangedReceiver; import com.android.systemui.Dependency; import com.android.systemui.R; -import com.android.systemui.SysUiServiceProvider; import com.android.systemui.assist.ui.DefaultUiController; import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.statusbar.CommandQueue; @@ -130,6 +129,7 @@ public class AssistManager implements ConfigurationChangedReceiver { private AssistOrbContainer mView; private final DeviceProvisionedController mDeviceProvisionedController; + private final CommandQueue mCommandQueue; protected final AssistUtils mAssistUtils; private final boolean mShouldEnableOrb; @@ -160,9 +160,11 @@ public class AssistManager implements ConfigurationChangedReceiver { DeviceProvisionedController controller, Context context, AssistUtils assistUtils, - AssistHandleBehaviorController handleController) { + AssistHandleBehaviorController handleController, + CommandQueue commandQueue) { mContext = context; mDeviceProvisionedController = controller; + mCommandQueue = commandQueue; mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE); mAssistUtils = assistUtils; mAssistDisclosure = new AssistDisclosure(context, new Handler()); @@ -339,7 +341,7 @@ public class AssistManager implements ConfigurationChangedReceiver { } // Close Recent Apps if needed - SysUiServiceProvider.getComponent(mContext, CommandQueue.class).animateCollapsePanels( + mCommandQueue.animateCollapsePanels( CommandQueue.FLAG_EXCLUDE_SEARCH_PANEL | CommandQueue.FLAG_EXCLUDE_RECENTS_PANEL, false /* force */); diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java index 446ed2572bab..516de709c34f 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java @@ -47,16 +47,21 @@ import com.android.systemui.statusbar.CommandQueue; import java.util.List; +import javax.inject.Inject; +import javax.inject.Singleton; + /** * Receives messages sent from {@link com.android.server.biometrics.BiometricService} and shows the * appropriate biometric UI (e.g. BiometricDialogView). */ +@Singleton public class AuthController extends SystemUI implements CommandQueue.Callbacks, AuthDialogCallback { private static final String TAG = "BiometricPrompt/AuthController"; private static final boolean DEBUG = true; + private final CommandQueue mCommandQueue; private final Injector mInjector; // TODO: These should just be saved from onSaveState @@ -189,13 +194,15 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks, } } - public AuthController(Context context) { - this(context, new Injector()); + @Inject + public AuthController(Context context, CommandQueue commandQueue) { + this(context, commandQueue, new Injector()); } @VisibleForTesting - AuthController(Context context, Injector injector) { + AuthController(Context context, CommandQueue commandQueue, Injector injector) { super(context); + mCommandQueue = commandQueue; mInjector = injector; } @@ -205,7 +212,7 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks, if (pm.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT) || pm.hasSystemFeature(PackageManager.FEATURE_FACE) || pm.hasSystemFeature(PackageManager.FEATURE_IRIS)) { - getComponent(CommandQueue.class).addCallback(this); + mCommandQueue.addCallback(this); mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE); mActivityTaskManager = mInjector.getActivityTaskManager(); diff --git a/packages/SystemUI/src/com/android/systemui/dagger/DependencyProvider.java b/packages/SystemUI/src/com/android/systemui/dagger/DependencyProvider.java index 87434f344729..11879bb9c01f 100644 --- a/packages/SystemUI/src/com/android/systemui/dagger/DependencyProvider.java +++ b/packages/SystemUI/src/com/android/systemui/dagger/DependencyProvider.java @@ -43,6 +43,7 @@ import com.android.systemui.shared.plugins.PluginManager; import com.android.systemui.shared.plugins.PluginManagerImpl; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.DevicePolicyManagerWrapper; +import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.NavigationBarController; import com.android.systemui.statusbar.NotificationRemoteInputManager; import com.android.systemui.statusbar.phone.AutoHideController; @@ -181,8 +182,8 @@ public class DependencyProvider { @Singleton @Provides public NavigationBarController provideNavigationBarController(Context context, - @MainHandler Handler mainHandler) { - return new NavigationBarController(context, mainHandler); + @MainHandler Handler mainHandler, CommandQueue commandQueue) { + return new NavigationBarController(context, mainHandler, commandQueue); } @Singleton diff --git a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIBinder.java b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIBinder.java index bb83fdc94190..ead6de2b7f0e 100644 --- a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIBinder.java +++ b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIBinder.java @@ -29,14 +29,17 @@ import com.android.keyguard.KeyguardUpdateMonitor; import com.android.systemui.ForegroundServiceController; import com.android.systemui.LatencyTester; import com.android.systemui.ScreenDecorations; +import com.android.systemui.SizeCompatModeActivityController; import com.android.systemui.SystemUI; import com.android.systemui.UiOffloadThread; import com.android.systemui.appops.AppOpsController; import com.android.systemui.assist.AssistManager; +import com.android.systemui.biometrics.AuthController; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.bubbles.BubbleController; import com.android.systemui.colorextraction.SysuiColorExtractor; import com.android.systemui.doze.DozeLog; +import com.android.systemui.globalactions.GlobalActionsComponent; import com.android.systemui.keyguard.KeyguardViewMediator; import com.android.systemui.keyguard.ScreenLifecycle; import com.android.systemui.keyguard.WakefulnessLifecycle; @@ -45,6 +48,7 @@ import com.android.systemui.plugins.FalsingManager; import com.android.systemui.power.PowerUI; import com.android.systemui.recents.Recents; import com.android.systemui.recents.RecentsModule; +import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.FeatureFlags; import com.android.systemui.statusbar.NavigationBarController; import com.android.systemui.statusbar.NotificationListener; @@ -57,6 +61,7 @@ import com.android.systemui.statusbar.SysuiStatusBarStateController; import com.android.systemui.statusbar.VibratorHelper; import com.android.systemui.statusbar.notification.BypassHeadsUpNotifier; import com.android.systemui.statusbar.notification.DynamicPrivacyController; +import com.android.systemui.statusbar.notification.InstantAppNotifier; import com.android.systemui.statusbar.notification.NewNotifPipeline; import com.android.systemui.statusbar.notification.NotificationAlertingManager; import com.android.systemui.statusbar.notification.NotificationEntryManager; @@ -91,6 +96,7 @@ import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler; import com.android.systemui.statusbar.policy.UserSwitcherController; import com.android.systemui.statusbar.policy.ZenModeController; +import com.android.systemui.statusbar.tv.TvStatusBar; import com.android.systemui.util.InjectionInflationController; import com.android.systemui.util.leak.GarbageMonitor; import com.android.systemui.volume.VolumeUI; @@ -110,6 +116,11 @@ import dagger.multibindings.IntoMap; */ @Module(includes = {RecentsModule.class}) public abstract class SystemUIBinder { + /** Inject into AuthController. */ + @Binds + @IntoMap + @ClassKey(AuthController.class) + public abstract SystemUI bindAuthController(AuthController service); /** Inject into GarbageMonitor.Service. */ @Binds @@ -117,6 +128,18 @@ public abstract class SystemUIBinder { @ClassKey(GarbageMonitor.Service.class) public abstract SystemUI bindGarbageMonitorService(GarbageMonitor.Service service); + /** Inject into GlobalActionsComponent. */ + @Binds + @IntoMap + @ClassKey(GlobalActionsComponent.class) + public abstract SystemUI bindGlobalActionsComponent(GlobalActionsComponent sysui); + + /** Inject into InstantAppNotifier. */ + @Binds + @IntoMap + @ClassKey(InstantAppNotifier.class) + public abstract SystemUI bindInstantAppNotifier(InstantAppNotifier sysui); + /** Inject into KeyguardViewMediator. */ @Binds @IntoMap @@ -153,12 +176,25 @@ public abstract class SystemUIBinder { @ClassKey(ScreenDecorations.class) public abstract SystemUI bindScreenDecorations(ScreenDecorations sysui); + /** Inject into SizeCompatModeActivityController. */ + @Binds + @IntoMap + @ClassKey(SizeCompatModeActivityController.class) + public abstract SystemUI bindsSizeCompatModeActivityController( + SizeCompatModeActivityController sysui); + /** Inject into StatusBar. */ @Binds @IntoMap @ClassKey(StatusBar.class) public abstract SystemUI bindsStatusBar(StatusBar sysui); + /** Inject into TvStatusBar. */ + @Binds + @IntoMap + @ClassKey(TvStatusBar.class) + public abstract SystemUI bindsTvStatusBar(TvStatusBar sysui); + /** Inject into VolumeUI. */ @Binds @IntoMap @@ -234,7 +270,8 @@ public abstract class SystemUIBinder { Lazy<BiometricUnlockController> biometricUnlockControllerLazy, DozeServiceHost dozeServiceHost, PowerManager powerManager, - DozeScrimController dozeScrimController) { + DozeScrimController dozeScrimController, + CommandQueue commandQueue) { return new StatusBar( context, featureFlags, @@ -299,7 +336,8 @@ public abstract class SystemUIBinder { biometricUnlockControllerLazy, dozeServiceHost, powerManager, - dozeScrimController); + dozeScrimController, + commandQueue); } } diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsComponent.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsComponent.java index c11127d1dc0b..19b6f8232a9a 100644 --- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsComponent.java +++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsComponent.java @@ -20,7 +20,6 @@ import android.os.ServiceManager; import com.android.internal.statusbar.IStatusBarService; import com.android.systemui.Dependency; -import com.android.systemui.SysUiServiceProvider; import com.android.systemui.SystemUI; import com.android.systemui.plugins.GlobalActions; import com.android.systemui.plugins.GlobalActions.GlobalActionsManager; @@ -29,14 +28,24 @@ import com.android.systemui.statusbar.CommandQueue.Callbacks; import com.android.systemui.statusbar.policy.ExtensionController; import com.android.systemui.statusbar.policy.ExtensionController.Extension; +import javax.inject.Inject; +import javax.inject.Singleton; + +/** + * Manages power menu plugins and communicates power menu actions to the StatusBar. + */ +@Singleton public class GlobalActionsComponent extends SystemUI implements Callbacks, GlobalActionsManager { + private final CommandQueue mCommandQueue; private GlobalActions mPlugin; private Extension<GlobalActions> mExtension; private IStatusBarService mBarService; - public GlobalActionsComponent(Context context) { + @Inject + public GlobalActionsComponent(Context context, CommandQueue commandQueue) { super(context); + mCommandQueue = commandQueue; } @Override @@ -45,11 +54,11 @@ public class GlobalActionsComponent extends SystemUI implements Callbacks, Globa ServiceManager.getService(Context.STATUS_BAR_SERVICE)); mExtension = Dependency.get(ExtensionController.class).newExtension(GlobalActions.class) .withPlugin(GlobalActions.class) - .withDefault(() -> new GlobalActionsImpl(mContext)) + .withDefault(() -> new GlobalActionsImpl(mContext, mCommandQueue)) .withCallback(this::onExtensionCallback) .build(); mPlugin = mExtension.get(); - SysUiServiceProvider.getComponent(mContext, CommandQueue.class).addCallback(this); + mCommandQueue.addCallback(this); } private void onExtensionCallback(GlobalActions newPlugin) { diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsImpl.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsImpl.java index 6178a16bd22f..d5f5a5a00500 100644 --- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsImpl.java +++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsImpl.java @@ -33,7 +33,6 @@ import com.android.internal.colorextraction.drawable.ScrimDrawable; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.settingslib.Utils; import com.android.systemui.Dependency; -import com.android.systemui.SysUiServiceProvider; import com.android.systemui.colorextraction.SysuiColorExtractor; import com.android.systemui.plugins.GlobalActions; import com.android.systemui.plugins.GlobalActionsPanelPlugin; @@ -54,17 +53,19 @@ public class GlobalActionsImpl implements GlobalActions, CommandQueue.Callbacks, private final DeviceProvisionedController mDeviceProvisionedController; private final ExtensionController.Extension<GlobalActionsPanelPlugin> mPanelExtension; private GlobalActionsPanelPlugin mPlugin; + private final CommandQueue mCommandQueue; private GlobalActionsDialog mGlobalActions; private boolean mDisabled; private final PluginManager mPluginManager; private final String mPluginPackageName; - public GlobalActionsImpl(Context context) { + public GlobalActionsImpl(Context context, CommandQueue commandQueue) { mContext = context; mKeyguardStateController = Dependency.get(KeyguardStateController.class); mDeviceProvisionedController = Dependency.get(DeviceProvisionedController.class); mPluginManager = Dependency.get(PluginManager.class); - SysUiServiceProvider.getComponent(context, CommandQueue.class).addCallback(this); + mCommandQueue = commandQueue; + mCommandQueue.addCallback(this); mPanelExtension = Dependency.get(ExtensionController.class) .newExtension(GlobalActionsPanelPlugin.class) .withPlugin(GlobalActionsPanelPlugin.class) @@ -77,7 +78,7 @@ public class GlobalActionsImpl implements GlobalActions, CommandQueue.Callbacks, @Override public void destroy() { - SysUiServiceProvider.getComponent(mContext, CommandQueue.class).removeCallback(this); + mCommandQueue.removeCallback(this); mPluginManager.removePluginListener(this); if (mPlugin != null) mPlugin.onDestroy(); if (mGlobalActions != null) { diff --git a/packages/SystemUI/src/com/android/systemui/pip/PipUI.java b/packages/SystemUI/src/com/android/systemui/pip/PipUI.java index f1e801b3a474..feb5d1917384 100644 --- a/packages/SystemUI/src/com/android/systemui/pip/PipUI.java +++ b/packages/SystemUI/src/com/android/systemui/pip/PipUI.java @@ -40,13 +40,15 @@ import javax.inject.Singleton; @Singleton public class PipUI extends SystemUI implements CommandQueue.Callbacks { + private final CommandQueue mCommandQueue; private BasePipManager mPipManager; private boolean mSupportsPip; @Inject - public PipUI(Context context) { + public PipUI(Context context, CommandQueue commandQueue) { super(context); + mCommandQueue = commandQueue; } @Override @@ -68,7 +70,7 @@ public class PipUI extends SystemUI implements CommandQueue.Callbacks { : com.android.systemui.pip.phone.PipManager.getInstance(); mPipManager.initialize(mContext); - getComponent(CommandQueue.class).addCallback(this); + mCommandQueue.addCallback(this); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSDetail.java b/packages/SystemUI/src/com/android/systemui/qs/QSDetail.java index 496aa0e572ae..60d30da431a5 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSDetail.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSDetail.java @@ -38,7 +38,6 @@ import com.android.internal.logging.MetricsLogger; import com.android.systemui.Dependency; import com.android.systemui.FontSizeUtils; import com.android.systemui.R; -import com.android.systemui.SysUiServiceProvider; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.qs.DetailAdapter; import com.android.systemui.statusbar.CommandQueue; @@ -169,8 +168,7 @@ public class QSDetail extends LinearLayout { setupDetailHeader(adapter); if (toggleQs && !mFullyExpanded) { mTriggeredExpand = true; - SysUiServiceProvider.getComponent(mContext, CommandQueue.class) - .animateExpandSettingsPanel(null); + Dependency.get(CommandQueue.class).animateExpandSettingsPanel(null); } else { mTriggeredExpand = false; } @@ -181,8 +179,7 @@ public class QSDetail extends LinearLayout { x = mOpenX; y = mOpenY; if (toggleQs && mTriggeredExpand) { - SysUiServiceProvider.getComponent(mContext, CommandQueue.class) - .animateCollapsePanels(); + Dependency.get(CommandQueue.class).animateCollapsePanels(); mTriggeredExpand = false; } } diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java b/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java index 0a3b43a78f13..ccc836f50c7b 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java @@ -38,7 +38,6 @@ import androidx.annotation.VisibleForTesting; import com.android.systemui.Interpolators; import com.android.systemui.R; import com.android.systemui.R.id; -import com.android.systemui.SysUiServiceProvider; import com.android.systemui.plugins.qs.QS; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.qs.customize.QSCustomizer; @@ -97,11 +96,10 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca InjectionInflationController injectionInflater, Context context, QSTileHost qsTileHost, - StatusBarStateController statusBarStateController) { + StatusBarStateController statusBarStateController, CommandQueue commandQueue) { mRemoteInputQuickSettingsDisabler = remoteInputQsDisabler; mInjectionInflater = injectionInflater; - SysUiServiceProvider.getComponent(context, CommandQueue.class) - .observe(getLifecycle(), this); + commandQueue.observe(getLifecycle(), this); mHost = qsTileHost; mStatusBarStateController = statusBarStateController; } diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java index 16c61e60179e..24ac27e2e77b 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java @@ -70,6 +70,7 @@ import com.android.systemui.privacy.PrivacyItem; import com.android.systemui.privacy.PrivacyItemController; import com.android.systemui.privacy.PrivacyItemControllerKt; import com.android.systemui.qs.QSDetail.Callback; +import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.phone.PhoneStatusBarView; import com.android.systemui.statusbar.phone.StatusBarIconController; import com.android.systemui.statusbar.phone.StatusBarIconController.TintedIconManager; @@ -124,6 +125,7 @@ public class QuickStatusBarHeader extends RelativeLayout implements private TouchAnimator mHeaderTextContainerAlphaAnimator; private TouchAnimator mPrivacyChipAlphaAnimator; private DualToneHandler mDualToneHandler; + private final CommandQueue mCommandQueue; private View mSystemIconsView; private View mQuickQsStatusIcons; @@ -186,7 +188,8 @@ public class QuickStatusBarHeader extends RelativeLayout implements public QuickStatusBarHeader(@Named(VIEW_CONTEXT) Context context, AttributeSet attrs, NextAlarmController nextAlarmController, ZenModeController zenModeController, StatusBarIconController statusBarIconController, - ActivityStarter activityStarter, PrivacyItemController privacyItemController) { + ActivityStarter activityStarter, PrivacyItemController privacyItemController, + CommandQueue commandQueue) { super(context, attrs); mAlarmController = nextAlarmController; mZenController = zenModeController; @@ -195,6 +198,7 @@ public class QuickStatusBarHeader extends RelativeLayout implements mPrivacyItemController = privacyItemController; mDualToneHandler = new DualToneHandler( new ContextThemeWrapper(context, R.style.QSHeaderTheme)); + mCommandQueue = commandQueue; } @Override @@ -208,7 +212,7 @@ public class QuickStatusBarHeader extends RelativeLayout implements // Ignore privacy icons because they show in the space above QQS iconContainer.addIgnoredSlots(getIgnoredIconSlots()); iconContainer.setShouldRestrictIcons(false); - mIconManager = new TintedIconManager(iconContainer); + mIconManager = new TintedIconManager(iconContainer, mCommandQueue); // Views corresponding to the header info section (e.g. ringer and next alarm). mHeaderTextContainerView = findViewById(R.id.header_text_container); diff --git a/packages/SystemUI/src/com/android/systemui/recents/Recents.java b/packages/SystemUI/src/com/android/systemui/recents/Recents.java index 0a8264bcef87..a8ecc1275221 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/Recents.java +++ b/packages/SystemUI/src/com/android/systemui/recents/Recents.java @@ -29,23 +29,27 @@ import java.io.FileDescriptor; import java.io.PrintWriter; import javax.inject.Inject; +import javax.inject.Singleton; /** * A proxy to a Recents implementation. */ +@Singleton public class Recents extends SystemUI implements CommandQueue.Callbacks { private final RecentsImplementation mImpl; + private final CommandQueue mCommandQueue; @Inject - public Recents(Context context, RecentsImplementation impl) { + public Recents(Context context, RecentsImplementation impl, CommandQueue commandQueue) { super(context); mImpl = impl; + mCommandQueue = commandQueue; } @Override public void start() { - getComponent(CommandQueue.class).addCallback(this); + mCommandQueue.addCallback(this); putComponent(Recents.class, this); mImpl.onStart(mContext, this); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java index 34f543702d96..eb6ea13a6690 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java @@ -56,12 +56,14 @@ import com.android.internal.os.SomeArgs; import com.android.internal.statusbar.IStatusBar; import com.android.internal.statusbar.StatusBarIcon; import com.android.internal.view.AppearanceRegion; -import com.android.systemui.SystemUI; import com.android.systemui.statusbar.CommandQueue.Callbacks; import com.android.systemui.statusbar.policy.CallbackController; import java.util.ArrayList; +import javax.inject.Inject; +import javax.inject.Singleton; + /** * This class takes the functions from IStatusBar that come in on * binder pool threads and posts messages to get them onto the main @@ -69,6 +71,7 @@ import java.util.ArrayList; * coalescing these calls so they don't stack up. For the calls * are coalesced, note that they are all idempotent. */ +@Singleton public class CommandQueue extends IStatusBar.Stub implements CallbackController<Callbacks>, DisplayManager.DisplayListener { private static final int INDEX_MASK = 0xffff; @@ -305,6 +308,7 @@ public class CommandQueue extends IStatusBar.Stub implements CallbackController< } @VisibleForTesting + @Inject public CommandQueue(Context context) { context.getSystemService(DisplayManager.class).registerDisplayListener(this, mHandler); // We always have default display. @@ -1186,17 +1190,4 @@ public class CommandQueue extends IStatusBar.Stub implements CallbackController< } } } - - // Need this class since CommandQueue already extends IStatusBar.Stub, so CommandQueueStart - // is needed so it can extend SystemUI. - public static class CommandQueueStart extends SystemUI { - public CommandQueueStart(Context context) { - super(context); - } - - @Override - public void start() { - putComponent(CommandQueue.class, new CommandQueue(mContext)); - } - } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NavigationBarController.java b/packages/SystemUI/src/com/android/systemui/statusbar/NavigationBarController.java index 1f389049f423..9f5cf684b3b4 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/NavigationBarController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/NavigationBarController.java @@ -18,8 +18,6 @@ package com.android.systemui.statusbar; import static android.view.Display.DEFAULT_DISPLAY; -import static com.android.systemui.SysUiServiceProvider.getComponent; - import android.content.Context; import android.hardware.display.DisplayManager; import android.os.Handler; @@ -66,14 +64,12 @@ public class NavigationBarController implements Callbacks { SparseArray<NavigationBarFragment> mNavigationBars = new SparseArray<>(); @Inject - public NavigationBarController(Context context, @MainHandler Handler handler) { + public NavigationBarController(Context context, @MainHandler Handler handler, + CommandQueue commandQueue) { mContext = context; mHandler = handler; mDisplayManager = (DisplayManager) mContext.getSystemService(Context.DISPLAY_SERVICE); - CommandQueue commandQueue = getComponent(mContext, CommandQueue.class); - if (commandQueue != null) { - commandQueue.addCallback(this); - } + commandQueue.addCallback(this); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/InstantAppNotifier.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/InstantAppNotifier.java index 53fbe5b57d7e..49bed15c79a8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/InstantAppNotifier.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/InstantAppNotifier.java @@ -53,7 +53,6 @@ import com.android.internal.messages.nano.SystemMessageProto.SystemMessage; import com.android.systemui.Dependency; import com.android.systemui.DockedStackExistsListener; import com.android.systemui.R; -import com.android.systemui.SysUiServiceProvider; import com.android.systemui.SystemUI; import com.android.systemui.UiOffloadThread; import com.android.systemui.statusbar.CommandQueue; @@ -62,9 +61,13 @@ import com.android.systemui.util.NotificationChannels; import java.util.List; +import javax.inject.Inject; +import javax.inject.Singleton; + /** The class to show notification(s) of instant apps. This may show multiple notifications on * splitted screen. */ +@Singleton public class InstantAppNotifier extends SystemUI implements CommandQueue.Callbacks, KeyguardStateController.Callback { private static final String TAG = "InstantAppNotifier"; @@ -73,11 +76,14 @@ public class InstantAppNotifier extends SystemUI private final Handler mHandler = new Handler(); private final UiOffloadThread mUiOffloadThread = Dependency.get(UiOffloadThread.class); private final ArraySet<Pair<String, Integer>> mCurrentNotifs = new ArraySet<>(); + private final CommandQueue mCommandQueue; private boolean mDockedStackExists; private KeyguardStateController mKeyguardStateController; - public InstantAppNotifier(Context context) { + @Inject + public InstantAppNotifier(Context context, CommandQueue commandQueue) { super(context); + mCommandQueue = commandQueue; } @Override @@ -91,7 +97,7 @@ public class InstantAppNotifier extends SystemUI // Ignore } - SysUiServiceProvider.getComponent(mContext, CommandQueue.class).addCallback(this); + mCommandQueue.addCallback(this); mKeyguardStateController.addCallback(this); DockedStackExistsListener.register( diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java index e78b85e5fd57..0092cc949194 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java @@ -83,7 +83,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue mNetworkController = Dependency.get(NetworkController.class); mStatusBarStateController = Dependency.get(StatusBarStateController.class); mStatusBarComponent = SysUiServiceProvider.getComponent(getContext(), StatusBar.class); - mCommandQueue = SysUiServiceProvider.getComponent(getContext(), CommandQueue.class); + mCommandQueue = Dependency.get(CommandQueue.class); } @Override @@ -100,7 +100,8 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue mStatusBar.restoreHierarchyState( savedInstanceState.getSparseParcelableArray(EXTRA_PANEL_STATE)); } - mDarkIconManager = new DarkIconManager(view.findViewById(R.id.statusIcons)); + mDarkIconManager = new DarkIconManager(view.findViewById(R.id.statusIcons), + Dependency.get(CommandQueue.class)); mDarkIconManager.setShouldLog(true); Dependency.get(StatusBarIconController.class).addIconGroup(mDarkIconManager); mSystemIconArea = mStatusBar.findViewById(R.id.system_icon_area); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DarkIconDispatcherImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DarkIconDispatcherImpl.java index ac58e681dbbc..ef0f7cddba24 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DarkIconDispatcherImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DarkIconDispatcherImpl.java @@ -26,6 +26,7 @@ import android.widget.ImageView; import com.android.systemui.R; import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver; +import com.android.systemui.statusbar.CommandQueue; import java.io.FileDescriptor; import java.io.PrintWriter; @@ -51,11 +52,11 @@ public class DarkIconDispatcherImpl implements SysuiDarkIconDispatcher, /** */ @Inject - public DarkIconDispatcherImpl(Context context) { + public DarkIconDispatcherImpl(Context context, CommandQueue commandQueue) { mDarkModeIconColorSingleTone = context.getColor(R.color.dark_mode_icon_color_single_tone); mLightModeIconColorSingleTone = context.getColor(R.color.light_mode_icon_color_single_tone); - mTransitionsController = new LightBarTransitionsController(context, this); + mTransitionsController = new LightBarTransitionsController(context, this, commandQueue); } public LightBarTransitionsController getTransitionsController() { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceController.java index ce96005aa306..8e5a9126f08a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceController.java @@ -16,8 +16,6 @@ package com.android.systemui.statusbar.phone; -import static com.android.systemui.SysUiServiceProvider.getComponent; - import android.graphics.Point; import android.graphics.Rect; import android.view.DisplayCutout; @@ -94,14 +92,14 @@ public class HeadsUpAppearanceController implements OnHeadsUpChangedListener, public HeadsUpAppearanceController( NotificationIconAreaController notificationIconAreaController, - HeadsUpManagerPhone headsUpManager, - View statusbarView, + HeadsUpManagerPhone headsUpManager, View statusbarView, SysuiStatusBarStateController statusBarStateController, KeyguardBypassController keyguardBypassController, KeyguardStateController keyguardStateController, - NotificationWakeUpCoordinator wakeUpCoordinator) { + NotificationWakeUpCoordinator wakeUpCoordinator, CommandQueue commandQueue) { this(notificationIconAreaController, headsUpManager, statusBarStateController, keyguardBypassController, wakeUpCoordinator, keyguardStateController, + commandQueue, statusbarView.findViewById(R.id.heads_up_status_bar_view), statusbarView.findViewById(R.id.notification_stack_scroller), statusbarView.findViewById(R.id.notification_panel), @@ -118,6 +116,7 @@ public class HeadsUpAppearanceController implements OnHeadsUpChangedListener, KeyguardBypassController bypassController, NotificationWakeUpCoordinator wakeUpCoordinator, KeyguardStateController keyguardStateController, + CommandQueue commandQueue, HeadsUpStatusBarView headsUpStatusBarView, NotificationStackScrollLayout stackScroller, NotificationPanelView panelView, @@ -161,7 +160,7 @@ public class HeadsUpAppearanceController implements OnHeadsUpChangedListener, mStatusBarStateController = stateController; mWakeUpCoordinator = wakeUpCoordinator; wakeUpCoordinator.addListener(this); - mCommandQueue = getComponent(headsUpStatusBarView.getContext(), CommandQueue.class); + mCommandQueue = commandQueue; mKeyguardStateController = keyguardStateController; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java index 6ee031a2f505..b24942ab22b3 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java @@ -46,6 +46,7 @@ import com.android.systemui.Interpolators; import com.android.systemui.R; import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver; import com.android.systemui.qs.QSPanel; +import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.phone.StatusBarIconController.TintedIconManager; import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback; @@ -329,7 +330,8 @@ public class KeyguardStatusBarView extends RelativeLayout mMultiUserSwitch.setUserSwitcherController(mUserSwitcherController); userInfoController.reloadUserInfo(); Dependency.get(ConfigurationController.class).addCallback(this); - mIconManager = new TintedIconManager(findViewById(R.id.statusIcons)); + mIconManager = new TintedIconManager(findViewById(R.id.statusIcons), + Dependency.get(CommandQueue.class)); Dependency.get(StatusBarIconController.class).addIconGroup(mIconManager); onThemeChanged(); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarTransitionsController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarTransitionsController.java index de660ce18263..092dd49ba617 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarTransitionsController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarTransitionsController.java @@ -27,7 +27,6 @@ import android.util.TimeUtils; import com.android.systemui.Dependency; import com.android.systemui.Dumpable; import com.android.systemui.Interpolators; -import com.android.systemui.SysUiServiceProvider; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.CommandQueue.Callbacks; @@ -49,6 +48,7 @@ public class LightBarTransitionsController implements Dumpable, Callbacks, private final DarkIntensityApplier mApplier; private final KeyguardStateController mKeyguardStateController; private final StatusBarStateController mStatusBarStateController; + private final CommandQueue mCommandQueue; private boolean mTransitionDeferring; private long mTransitionDeferringStartTime; @@ -70,13 +70,14 @@ public class LightBarTransitionsController implements Dumpable, Callbacks, private final Context mContext; - public LightBarTransitionsController(Context context, DarkIntensityApplier applier) { + public LightBarTransitionsController(Context context, DarkIntensityApplier applier, + CommandQueue commandQueue) { mApplier = applier; mHandler = new Handler(); mKeyguardStateController = Dependency.get(KeyguardStateController.class); mStatusBarStateController = Dependency.get(StatusBarStateController.class); - SysUiServiceProvider.getComponent(context, CommandQueue.class) - .addCallback(this); + mCommandQueue = commandQueue; + mCommandQueue.addCallback(this); mStatusBarStateController.addCallback(this); mDozeAmount = mStatusBarStateController.getDozeAmount(); mContext = context; @@ -84,8 +85,7 @@ public class LightBarTransitionsController implements Dumpable, Callbacks, } public void destroy(Context context) { - SysUiServiceProvider.getComponent(context, CommandQueue.class) - .removeCallback(this); + mCommandQueue.removeCallback(this); mStatusBarStateController.removeCallback(this); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java index 7030dfc4c33b..816327fe19bd 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java @@ -165,7 +165,7 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback private Recents mRecents; private Divider mDivider; private WindowManager mWindowManager; - private CommandQueue mCommandQueue; + private final CommandQueue mCommandQueue; private long mLastLockToAppLongPress; private Locale mLocale; @@ -265,7 +265,8 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback NavigationModeController navigationModeController, StatusBarStateController statusBarStateController, SysUiState sysUiFlagsContainer, - BroadcastDispatcher broadcastDispatcher) { + BroadcastDispatcher broadcastDispatcher, + CommandQueue commandQueue) { mAccessibilityManagerWrapper = accessibilityManagerWrapper; mDeviceProvisionedController = deviceProvisionedController; mStatusBarStateController = statusBarStateController; @@ -277,6 +278,7 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback mNavigationModeController = navigationModeController; mNavBarMode = navigationModeController.addListener(this); mBroadcastDispatcher = broadcastDispatcher; + mCommandQueue = commandQueue; } // ----- Fragment Lifecycle Callbacks ----- @@ -284,7 +286,6 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - mCommandQueue = SysUiServiceProvider.getComponent(getContext(), CommandQueue.class); mCommandQueue.observe(getLifecycle(), this); mStatusBar = SysUiServiceProvider.getComponent(getContext(), StatusBar.class); mRecents = SysUiServiceProvider.getComponent(getContext(), Recents.class); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarTransitions.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarTransitions.java index 3b590315a5ca..1a6d3d770f9f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarTransitions.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarTransitions.java @@ -34,6 +34,7 @@ import android.view.View; import com.android.internal.statusbar.IStatusBarService; import com.android.systemui.Dependency; import com.android.systemui.R; +import com.android.systemui.statusbar.CommandQueue; import java.util.ArrayList; import java.util.List; @@ -78,12 +79,13 @@ public final class NavigationBarTransitions extends BarTransitions implements } }; - public NavigationBarTransitions(NavigationBarView view) { + public NavigationBarTransitions(NavigationBarView view, CommandQueue commandQueue) { super(view, R.drawable.nav_background); mView = view; mBarService = IStatusBarService.Stub.asInterface( ServiceManager.getService(Context.STATUS_BAR_SERVICE)); - mLightTransitionsController = new LightBarTransitionsController(view.getContext(), this); + mLightTransitionsController = new LightBarTransitionsController( + view.getContext(), this, commandQueue); mAllowAutoDimWallpaperNotVisible = view.getContext().getResources() .getBoolean(R.bool.config_navigation_bar_enable_auto_dim_no_visible_wallpaper); mDarkIntensityListeners = new ArrayList(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java index 4b4a35bae05d..159a829fc47d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java @@ -76,6 +76,7 @@ import com.android.systemui.recents.RecentsOnboarding; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.QuickStepContract; import com.android.systemui.shared.system.WindowManagerWrapper; +import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.NavigationBarController; import com.android.systemui.statusbar.policy.DeadZone; import com.android.systemui.statusbar.policy.KeyButtonDrawable; @@ -300,7 +301,7 @@ public class NavigationBarView extends FrameLayout implements mConfiguration.updateFrom(context.getResources().getConfiguration()); mScreenPinningNotify = new ScreenPinningNotify(mContext); - mBarTransitions = new NavigationBarTransitions(this); + mBarTransitions = new NavigationBarTransitions(this, Dependency.get(CommandQueue.class)); mButtonDispatchers.put(R.id.back, backButton); mButtonDispatchers.put(R.id.home, new ButtonDispatcher(R.id.home)); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java index 467df375e7eb..6839fb432c0a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -16,7 +16,6 @@ package com.android.systemui.statusbar.phone; -import static com.android.systemui.SysUiServiceProvider.getComponent; import static com.android.systemui.statusbar.notification.ActivityLaunchAnimator.ExpandAnimationParameters; import static com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.ROWS_ALL; import static com.android.systemui.util.InjectionInflationController.VIEW_CONTEXT; @@ -463,7 +462,7 @@ public class NotificationPanelView extends PanelView implements NotificationEntryManager notificationEntryManager, KeyguardStateController keyguardStateController, StatusBarStateController statusBarStateController, DozeLog dozeLog, - DozeParameters dozeParameters) { + DozeParameters dozeParameters, CommandQueue commandQueue) { super(context, attrs, falsingManager, dozeLog, keyguardStateController, (SysuiStatusBarStateController) statusBarStateController); setWillNotDraw(!DEBUG); @@ -475,7 +474,7 @@ public class NotificationPanelView extends PanelView implements setAccessibilityPaneTitle(determineAccessibilityPaneTitle()); mAlphaPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.MULTIPLY)); setPanelAlpha(255, false /* animate */); - mCommandQueue = getComponent(context, CommandQueue.class); + mCommandQueue = commandQueue; mDisplayId = context.getDisplayId(); mPulseExpansionHandler = pulseExpansionHandler; mDozeParameters = dozeParameters; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java index 294111c2bb76..0645423f531b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java @@ -40,7 +40,6 @@ import com.android.internal.telephony.IccCardConstants; import com.android.internal.telephony.TelephonyIntents; import com.android.systemui.Dependency; import com.android.systemui.R; -import com.android.systemui.SysUiServiceProvider; import com.android.systemui.UiOffloadThread; import com.android.systemui.privacy.PrivacyItem; import com.android.systemui.privacy.PrivacyItemController; @@ -138,7 +137,8 @@ public class PhoneStatusBarPolicy private BluetoothController mBluetooth; private AlarmManager.AlarmClockInfo mNextAlarm; - public PhoneStatusBarPolicy(Context context, StatusBarIconController iconController) { + public PhoneStatusBarPolicy(Context context, StatusBarIconController iconController, + CommandQueue commandQueue) { mContext = context; mIconController = iconController; mCast = Dependency.get(CastController.class); @@ -261,7 +261,7 @@ public class PhoneStatusBarPolicy mSensorPrivacyController.addCallback(mSensorPrivacyListener); mLocationController.addCallback(this); - SysUiServiceProvider.getComponent(mContext, CommandQueue.class).addCallback(this); + commandQueue.addCallback(this); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java index 53e146758116..312ca26c1bc4 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java @@ -19,7 +19,6 @@ package com.android.systemui.statusbar.phone; import static android.content.res.Configuration.ORIENTATION_PORTRAIT; import static com.android.systemui.ScreenDecorations.DisplayCutoutView.boundsFromDirection; -import static com.android.systemui.SysUiServiceProvider.getComponent; import android.annotation.Nullable; import android.content.Context; @@ -95,7 +94,7 @@ public class PhoneStatusBarView extends PanelBar { super(context, attrs); mBarTransitions = new PhoneStatusBarTransitions(this); - mCommandQueue = getComponent(context, CommandQueue.class); + mCommandQueue = Dependency.get(CommandQueue.class); } public BarTransitions getBarTransitions() { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index fb2ae533f866..4f9f1314918c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -696,7 +696,8 @@ public class StatusBar extends SystemUI implements DemoMode, Lazy<BiometricUnlockController> biometricUnlockControllerLazy, DozeServiceHost dozeServiceHost, PowerManager powerManager, - DozeScrimController dozeScrimController) { + DozeScrimController dozeScrimController, + CommandQueue commandQueue) { super(context); mFeatureFlags = featureFlags; mLightBarController = lightBarController; @@ -761,6 +762,7 @@ public class StatusBar extends SystemUI implements DemoMode, mLockscreenWallpaperLazy = lockscreenWallpaperLazy; mDozeScrimController = dozeScrimController; mBiometricUnlockControllerLazy = biometricUnlockControllerLazy; + mCommandQueue = commandQueue; mBubbleExpandListener = (isExpanding, key) -> { @@ -821,7 +823,6 @@ public class StatusBar extends SystemUI implements DemoMode, mKeyguardManager = (KeyguardManager) mContext.getSystemService(Context.KEYGUARD_SERVICE); // Connect in to the status bar manager service - mCommandQueue = getComponent(CommandQueue.class); mCommandQueue.addCallback(this); RegisterStatusBarResult result = null; @@ -904,7 +905,7 @@ public class StatusBar extends SystemUI implements DemoMode, // end old BaseStatusBar.start(). // Lastly, call to the icon policy to install/update all the icons. - mIconPolicy = new PhoneStatusBarPolicy(mContext, mIconController); + mIconPolicy = new PhoneStatusBarPolicy(mContext, mIconController, mCommandQueue); mSignalPolicy = new StatusBarSignalPolicy(mContext, mIconController); mKeyguardStateController.addCallback(this); @@ -1006,7 +1007,7 @@ public class StatusBar extends SystemUI implements DemoMode, mHeadsUpAppearanceController = new HeadsUpAppearanceController( mNotificationIconAreaController, mHeadsUpManager, mStatusBarWindow, mStatusBarStateController, mKeyguardBypassController, - mKeyguardStateController, mWakeUpCoordinator); + mKeyguardStateController, mWakeUpCoordinator, mCommandQueue); mHeadsUpAppearanceController.readFrom(oldController); mStatusBarWindowViewController.setStatusBarView(mStatusBarView); updateAreThereNotifications(); @@ -1212,7 +1213,7 @@ public class StatusBar extends SystemUI implements DemoMode, mPresenter = new StatusBarNotificationPresenter(mContext, mNotificationPanel, mHeadsUpManager, mStatusBarWindow, mStackScroller, mDozeScrimController, mScrimController, mActivityLaunchAnimator, mDynamicPrivacyController, - mNotificationAlertingManager, rowBinder, mKeyguardStateController); + mNotificationAlertingManager, rowBinder, mKeyguardStateController, mCommandQueue); mNotificationListController = new NotificationListController( @@ -4082,7 +4083,7 @@ public class StatusBar extends SystemUI implements DemoMode, // Begin Extra BaseStatusBar methods. - protected CommandQueue mCommandQueue; + protected final CommandQueue mCommandQueue; protected IStatusBarService mBarService; // all notifications diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java index 2e2ff1a5750e..5daef24cbad2 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java @@ -40,6 +40,7 @@ import com.android.systemui.Dependency; import com.android.systemui.R; import com.android.systemui.plugins.DarkIconDispatcher; import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver; +import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.StatusBarIconView; import com.android.systemui.statusbar.StatusBarMobileView; import com.android.systemui.statusbar.StatusBarWifiView; @@ -96,8 +97,8 @@ public interface StatusBarIconController { private final DarkIconDispatcher mDarkIconDispatcher; private int mIconHPadding; - public DarkIconManager(LinearLayout linearLayout) { - super(linearLayout); + public DarkIconManager(LinearLayout linearLayout, CommandQueue commandQueue) { + super(linearLayout, commandQueue); mIconHPadding = mContext.getResources().getDimensionPixelSize( R.dimen.status_bar_icon_padding); mDarkIconDispatcher = Dependency.get(DarkIconDispatcher.class); @@ -156,8 +157,8 @@ public interface StatusBarIconController { public static class TintedIconManager extends IconManager { private int mColor; - public TintedIconManager(ViewGroup group) { - super(group); + public TintedIconManager(ViewGroup group, CommandQueue commandQueue) { + super(group, commandQueue); } @Override @@ -203,14 +204,14 @@ public interface StatusBarIconController { private boolean mIsInDemoMode; protected DemoStatusIcons mDemoStatusIcons; - public IconManager(ViewGroup group) { + public IconManager(ViewGroup group, CommandQueue commandQueue) { mGroup = group; mContext = group.getContext(); mIconSize = mContext.getResources().getDimensionPixelSize( com.android.internal.R.dimen.status_bar_icon_size); DisableStateTracker tracker = - new DisableStateTracker(DISABLE_NONE, DISABLE2_SYSTEM_ICONS); + new DisableStateTracker(DISABLE_NONE, DISABLE2_SYSTEM_ICONS, commandQueue); mGroup.addOnAttachStateChangeListener(tracker); if (mGroup.isAttachedToWindow()) { // In case we miss the first onAttachedToWindow event diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java index e0b1846fa7d0..aa062eb2e051 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java @@ -29,7 +29,6 @@ import com.android.internal.statusbar.StatusBarIcon; import com.android.systemui.Dependency; import com.android.systemui.Dumpable; import com.android.systemui.R; -import com.android.systemui.SysUiServiceProvider; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.StatusIconDisplayable; import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.MobileIconState; @@ -70,7 +69,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu private boolean mIsDark = false; @Inject - public StatusBarIconControllerImpl(Context context) { + public StatusBarIconControllerImpl(Context context, CommandQueue commandQueue) { super(context.getResources().getStringArray( com.android.internal.R.array.config_statusBarIcons)); Dependency.get(ConfigurationController.class).addCallback(this); @@ -79,8 +78,7 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu loadDimens(); - SysUiServiceProvider.getComponent(context, CommandQueue.class) - .addCallback(this); + commandQueue.addCallback(this); Dependency.get(TunerService.class).addTunable(this, ICON_BLACKLIST); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java index b01a8d4b82e4..02e5ebfe5705 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java @@ -14,7 +14,6 @@ package com.android.systemui.statusbar.phone; -import static com.android.systemui.SysUiServiceProvider.getComponent; import static com.android.systemui.statusbar.phone.StatusBar.CLOSE_PANEL_WHEN_EMPTIED; import static com.android.systemui.statusbar.phone.StatusBar.DEBUG; import static com.android.systemui.statusbar.phone.StatusBar.MULTIUSER_DEBUG; @@ -139,13 +138,14 @@ public class StatusBarNotificationPresenter implements NotificationPresenter, DynamicPrivacyController dynamicPrivacyController, NotificationAlertingManager notificationAlertingManager, NotificationRowBinderImpl notificationRowBinder, - KeyguardStateController keyguardStateController) { + KeyguardStateController keyguardStateController, + CommandQueue commandQueue) { mContext = context; mKeyguardStateController = keyguardStateController; mNotificationPanel = panel; mHeadsUpManager = headsUp; mDynamicPrivacyController = dynamicPrivacyController; - mCommandQueue = getComponent(context, CommandQueue.class); + mCommandQueue = commandQueue; mAboveShelfObserver = new AboveShelfObserver(stackScroller); mActivityLaunchAnimator = activityLaunchAnimator; mAboveShelfObserver.setListener(statusBarWindow.findViewById( diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallback.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallback.java index 1def89b3af54..b5a7847a2747 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallback.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallback.java @@ -16,7 +16,6 @@ package com.android.systemui.statusbar.phone; import static android.content.Intent.ACTION_DEVICE_LOCKED_CHANGED; -import static com.android.systemui.SysUiServiceProvider.getComponent; import static com.android.systemui.statusbar.NotificationLockscreenUserManager.NOTIFICATION_UNLOCKED_BY_WORK_CHALLENGE_ACTION; import android.app.ActivityManager; @@ -80,7 +79,8 @@ public class StatusBarRemoteInputCallback implements Callback, Callbacks, NotificationLockscreenUserManager notificationLockscreenUserManager, KeyguardStateController keyguardStateController, StatusBarStateController statusBarStateController, - ActivityStarter activityStarter, ShadeController shadeController) { + ActivityStarter activityStarter, ShadeController shadeController, + CommandQueue commandQueue) { mContext = context; mContext.registerReceiverAsUser(mChallengeReceiver, UserHandle.ALL, new IntentFilter(ACTION_DEVICE_LOCKED_CHANGED), null, null); @@ -91,7 +91,7 @@ public class StatusBarRemoteInputCallback implements Callback, Callbacks, mActivityStarter = activityStarter; mStatusBarStateController.addCallback(this); mKeyguardManager = context.getSystemService(KeyguardManager.class); - mCommandQueue = getComponent(context, CommandQueue.class); + mCommandQueue = commandQueue; mCommandQueue.addCallback(this); mActivityIntentHelper = new ActivityIntentHelper(mContext); mGroupManager = groupManager; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowViewController.java index fd3f9c803c12..b7ada5d35a08 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowViewController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowViewController.java @@ -39,6 +39,7 @@ import com.android.systemui.doze.DozeLog; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.shared.plugins.PluginManager; +import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.DragDownHelper; import com.android.systemui.statusbar.NotificationLockscreenUserManager; import com.android.systemui.statusbar.PulseExpansionHandler; @@ -94,7 +95,8 @@ public class StatusBarWindowViewController { KeyguardStateController keyguardStateController, SysuiStatusBarStateController statusBarStateController, DozeLog dozeLog, - DozeParameters dozeParameters) { + DozeParameters dozeParameters, + CommandQueue commandQueue) { mView = view; mFalsingManager = falsingManager; @@ -115,7 +117,8 @@ public class StatusBarWindowViewController { keyguardStateController, statusBarStateController, dozeLog, - dozeParameters); + dozeParameters, + commandQueue); ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); notificationPanelView.setVisibility(View.INVISIBLE); @@ -488,6 +491,7 @@ public class StatusBarWindowViewController { private final NotificationEntryManager mNotificationEntryManager; private final DozeLog mDozeLog; private final DozeParameters mDozeParameters; + private final CommandQueue mCommandQueue; private StatusBarWindowView mView; @Inject @@ -505,7 +509,8 @@ public class StatusBarWindowViewController { KeyguardStateController keyguardStateController, StatusBarStateController statusBarStateController, DozeLog dozeLog, - DozeParameters dozeParameters) { + DozeParameters dozeParameters, + CommandQueue commandQueue) { mInjectionInflationController = injectionInflationController; mCoordinator = coordinator; mPulseExpansionHandler = pulseExpansionHandler; @@ -520,6 +525,7 @@ public class StatusBarWindowViewController { mStatusBarStateController = (SysuiStatusBarStateController) statusBarStateController; mDozeLog = dozeLog; mDozeParameters = dozeParameters; + mCommandQueue = commandQueue; } /** @@ -558,7 +564,8 @@ public class StatusBarWindowViewController { mKeyguardStateController, mStatusBarStateController, mDozeLog, - mDozeParameters); + mDozeParameters, + mCommandQueue); } } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java index b331fc3bf0ce..568f5906c11c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java @@ -45,7 +45,6 @@ import com.android.systemui.DemoMode; import com.android.systemui.Dependency; import com.android.systemui.FontSizeUtils; import com.android.systemui.R; -import com.android.systemui.SysUiServiceProvider; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.plugins.DarkIconDispatcher; import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver; @@ -81,6 +80,7 @@ public class Clock extends TextView implements DemoMode, Tunable, CommandQueue.C private static final String VISIBILITY = "visibility"; private final CurrentUserTracker mCurrentUserTracker; + private final CommandQueue mCommandQueue; private int mCurrentUserId; private boolean mClockVisibleByPolicy = true; @@ -116,18 +116,19 @@ public class Clock extends TextView implements DemoMode, Tunable, CommandQueue.C private final BroadcastDispatcher mBroadcastDispatcher; public Clock(Context context, AttributeSet attrs) { - this(context, attrs, null); + this(context, attrs, null, Dependency.get(CommandQueue.class)); } @Inject public Clock(@Named(VIEW_CONTEXT) Context context, AttributeSet attrs, - BroadcastDispatcher broadcastDispatcher) { - this(context, attrs, 0, broadcastDispatcher); + BroadcastDispatcher broadcastDispatcher, CommandQueue commandQueue) { + this(context, attrs, 0, broadcastDispatcher, commandQueue); } public Clock(Context context, AttributeSet attrs, int defStyle, - BroadcastDispatcher broadcastDispatcher) { + BroadcastDispatcher broadcastDispatcher, CommandQueue commandQueue) { super(context, attrs, defStyle); + mCommandQueue = commandQueue; TypedArray a = context.getTheme().obtainStyledAttributes( attrs, R.styleable.Clock, @@ -200,7 +201,7 @@ public class Clock extends TextView implements DemoMode, Tunable, CommandQueue.C null, Dependency.get(Dependency.TIME_TICK_HANDLER)); Dependency.get(TunerService.class).addTunable(this, CLOCK_SECONDS, StatusBarIconController.ICON_BLACKLIST); - SysUiServiceProvider.getComponent(getContext(), CommandQueue.class).addCallback(this); + mCommandQueue.addCallback(this); if (mShowDark) { Dependency.get(DarkIconDispatcher.class).addDarkReceiver(this); } @@ -227,8 +228,7 @@ public class Clock extends TextView implements DemoMode, Tunable, CommandQueue.C getContext().unregisterReceiver(mIntentReceiver); mAttached = false; Dependency.get(TunerService.class).removeTunable(this); - SysUiServiceProvider.getComponent(getContext(), CommandQueue.class) - .removeCallback(this); + mCommandQueue.removeCallback(this); if (mShowDark) { Dependency.get(DarkIconDispatcher.class).removeDarkReceiver(this); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisabler.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisabler.java index 2b602742e309..7ef9945b4d0e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisabler.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisabler.java @@ -21,7 +21,6 @@ import android.content.Context; import android.content.res.Configuration; import com.android.internal.annotations.VisibleForTesting; -import com.android.systemui.SysUiServiceProvider; import com.android.systemui.qs.QSFragment; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.phone.StatusBar; @@ -40,13 +39,13 @@ public class RemoteInputQuickSettingsDisabler @VisibleForTesting boolean mRemoteInputActive; @VisibleForTesting boolean misLandscape; private int mLastOrientation; - @VisibleForTesting CommandQueue mCommandQueue; + private final CommandQueue mCommandQueue; @Inject public RemoteInputQuickSettingsDisabler(Context context, - ConfigurationController configController) { + ConfigurationController configController, CommandQueue commandQueue) { mContext = context; - mCommandQueue = SysUiServiceProvider.getComponent(context, CommandQueue.class); + mCommandQueue = commandQueue; mLastOrientation = mContext.getResources().getConfiguration().orientation; configController.addCallback(this); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java index c2ed7df7cb2e..379cf1f273e5 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java @@ -24,6 +24,9 @@ import com.android.internal.statusbar.IStatusBarService; import com.android.systemui.SystemUI; import com.android.systemui.statusbar.CommandQueue; +import javax.inject.Inject; +import javax.inject.Singleton; + /** * Status bar implementation for "large screen" products that mostly present no on-screen nav. @@ -34,10 +37,15 @@ import com.android.systemui.statusbar.CommandQueue; * recording, discloses the responsible applications </li> * </ul> */ +@Singleton public class TvStatusBar extends SystemUI implements CommandQueue.Callbacks { - public TvStatusBar(Context context) { + private final CommandQueue mCommandQueue; + + @Inject + public TvStatusBar(Context context, CommandQueue commandQueue) { super(context); + mCommandQueue = commandQueue; } @Override @@ -46,10 +54,9 @@ public class TvStatusBar extends SystemUI implements CommandQueue.Callbacks { final IStatusBarService barService = IStatusBarService.Stub.asInterface( ServiceManager.getService(Context.STATUS_BAR_SERVICE)); - final CommandQueue commandQueue = getComponent(CommandQueue.class); - commandQueue.addCallback(this); + mCommandQueue.addCallback(this); try { - barService.registerStatusBar(commandQueue); + barService.registerStatusBar(mCommandQueue); } catch (RemoteException ex) { // If the system process isn't there we're doomed anyway. } diff --git a/packages/SystemUI/src/com/android/systemui/util/Utils.java b/packages/SystemUI/src/com/android/systemui/util/Utils.java index aa9c5ac2e032..47454cb5aca1 100644 --- a/packages/SystemUI/src/com/android/systemui/util/Utils.java +++ b/packages/SystemUI/src/com/android/systemui/util/Utils.java @@ -23,7 +23,6 @@ import android.content.pm.PackageManager; import android.provider.Settings; import android.view.View; -import com.android.systemui.SysUiServiceProvider; import com.android.systemui.shared.system.QuickStepContract; import com.android.systemui.statusbar.CommandQueue; @@ -53,25 +52,25 @@ public class Utils { View.OnAttachStateChangeListener { private final int mMask1; private final int mMask2; + private final CommandQueue mCommandQueue; private View mView; private boolean mDisabled; - public DisableStateTracker(int disableMask, int disable2Mask) { + public DisableStateTracker(int disableMask, int disable2Mask, CommandQueue commandQueue) { mMask1 = disableMask; mMask2 = disable2Mask; + mCommandQueue = commandQueue; } @Override public void onViewAttachedToWindow(View v) { mView = v; - SysUiServiceProvider.getComponent(v.getContext(), CommandQueue.class) - .addCallback(this); + mCommandQueue.addCallback(this); } @Override public void onViewDetachedFromWindow(View v) { - SysUiServiceProvider.getComponent(mView.getContext(), CommandQueue.class) - .removeCallback(this); + mCommandQueue.removeCallback(this); mView = null; } diff --git a/packages/SystemUI/tests/src/com/android/systemui/SizeCompatModeActivityControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/SizeCompatModeActivityControllerTest.java index 06999bc45e17..1638ea1ca843 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/SizeCompatModeActivityControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/SizeCompatModeActivityControllerTest.java @@ -31,6 +31,7 @@ import androidx.test.filters.SmallTest; import com.android.systemui.SizeCompatModeActivityController.RestartActivityButton; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.TaskStackChangeListener; +import com.android.systemui.statusbar.CommandQueue; import org.junit.Before; import org.junit.Test; @@ -58,7 +59,8 @@ public class SizeCompatModeActivityControllerTest extends SysuiTestCase { MockitoAnnotations.initMocks(this); doReturn(true).when(mMockButton).show(); - mController = new SizeCompatModeActivityController(mContext, mMockAm) { + mController = new SizeCompatModeActivityController(mContext, mMockAm, + new CommandQueue(mContext)) { @Override RestartActivityButton createRestartButton(Context context) { return mMockButton; diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthControllerTest.java index 85d818ac8be3..c215a43e0f3e 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthControllerTest.java @@ -88,7 +88,6 @@ public class AuthControllerTest extends SysuiTestCase { TestableContext context = spy(mContext); mContext.putComponent(StatusBar.class, mock(StatusBar.class)); - mContext.putComponent(CommandQueue.class, mock(CommandQueue.class)); when(context.getPackageManager()).thenReturn(mPackageManager); when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FACE)) @@ -102,7 +101,8 @@ public class AuthControllerTest extends SysuiTestCase { when(mDialog1.isAllowDeviceCredentials()).thenReturn(false); when(mDialog2.isAllowDeviceCredentials()).thenReturn(false); - mAuthController = new TestableAuthController(context, new MockInjector()); + mAuthController = new TestableAuthController( + context, mock(CommandQueue.class), new MockInjector()); mAuthController.mComponents = mContext.getComponents(); mAuthController.start(); @@ -435,8 +435,8 @@ public class AuthControllerTest extends SysuiTestCase { private int mBuildCount = 0; private Bundle mLastBiometricPromptBundle; - TestableAuthController(Context context, Injector injector) { - super(context, injector); + TestableAuthController(Context context, CommandQueue commandQueue, Injector injector) { + super(context, commandQueue, injector); } @Override diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java index 4eee23056bc2..ca30bed3892c 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java @@ -42,6 +42,7 @@ import com.android.systemui.SysuiBaseFragmentTest; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.qs.tileimpl.QSFactoryImpl; import com.android.systemui.shared.plugins.PluginManager; +import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.phone.AutoTileManager; import com.android.systemui.statusbar.phone.StatusBarIconController; import com.android.systemui.statusbar.policy.Clock; @@ -136,11 +137,14 @@ public class QSFragmentTest extends SysuiBaseFragmentTest { @Override protected Fragment instantiate(Context context, String className, Bundle arguments) { + CommandQueue commandQueue = new CommandQueue(context); return new QSFragment( - new RemoteInputQuickSettingsDisabler(context, mock(ConfigurationController.class)), + new RemoteInputQuickSettingsDisabler(context, mock(ConfigurationController.class), + commandQueue), new InjectionInflationController(SystemUIFactory.getInstance().getRootComponent()), context, mock(QSTileHost.class), - mock(StatusBarStateController.class)); + mock(StatusBarStateController.class), + commandQueue); } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NavigationBarControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NavigationBarControllerTest.java index cfa4065aed62..3c66ac6acd04 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NavigationBarControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NavigationBarControllerTest.java @@ -62,9 +62,9 @@ public class NavigationBarControllerTest extends SysuiTestCase { @Before public void setUp() { - mContext.putComponent(CommandQueue.class, mock(CommandQueue.class)); mNavigationBarController = spy( - new NavigationBarController(mContext, Dependency.get(Dependency.MAIN_HANDLER))); + new NavigationBarController(mContext, Dependency.get(Dependency.MAIN_HANDLER), + mock(CommandQueue.class))); initializeNavigationBars(); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.java index 0216d2effef3..026026949467 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.java @@ -33,6 +33,7 @@ import androidx.test.filters.SmallTest; import com.android.systemui.SysuiTestCase; import com.android.systemui.plugins.DarkIconDispatcher; import com.android.systemui.plugins.statusbar.StatusBarStateController; +import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.HeadsUpStatusBarView; import com.android.systemui.statusbar.NotificationTestHelper; import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator; @@ -63,6 +64,7 @@ public class HeadsUpAppearanceControllerTest extends SysuiTestCase { private KeyguardBypassController mBypassController; private NotificationWakeUpCoordinator mWakeUpCoordinator; private KeyguardStateController mKeyguardStateController; + private CommandQueue mCommandQueue; @Before public void setUp() throws Exception { @@ -78,6 +80,7 @@ public class HeadsUpAppearanceControllerTest extends SysuiTestCase { mBypassController = mock(KeyguardBypassController.class); mWakeUpCoordinator = mock(NotificationWakeUpCoordinator.class); mKeyguardStateController = mock(KeyguardStateController.class); + mCommandQueue = mock(CommandQueue.class); mHeadsUpAppearanceController = new HeadsUpAppearanceController( mock(NotificationIconAreaController.class), mHeadsUpManager, @@ -85,6 +88,7 @@ public class HeadsUpAppearanceControllerTest extends SysuiTestCase { mBypassController, mWakeUpCoordinator, mKeyguardStateController, + mCommandQueue, mHeadsUpStatusBarView, mStackScroller, mPanelView, @@ -163,6 +167,7 @@ public class HeadsUpAppearanceControllerTest extends SysuiTestCase { mBypassController, mWakeUpCoordinator, mKeyguardStateController, + mCommandQueue, mHeadsUpStatusBarView, mStackScroller, mPanelView, diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LightBarTransitionsControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LightBarTransitionsControllerTest.java index b1580eedc43c..0bcc3afe027d 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LightBarTransitionsControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LightBarTransitionsControllerTest.java @@ -17,7 +17,6 @@ package com.android.systemui.statusbar.phone; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -51,10 +50,10 @@ public class LightBarTransitionsControllerTest extends SysuiTestCase { @Before public void setup() { MockitoAnnotations.initMocks(this); - mContext.putComponent(CommandQueue.class, mock(CommandQueue.class)); mDependency.injectMockDependency(KeyguardStateController.class); mDependency.injectMockDependency(StatusBarStateController.class); - mLightBarTransitionsController = new LightBarTransitionsController(mContext, mApplier); + mLightBarTransitionsController = new LightBarTransitionsController(mContext, mApplier, + new CommandQueue(mContext)); } @Test diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java index 237f6ac0f420..125500178d30 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java @@ -124,6 +124,7 @@ public class NavigationBarFragmentTest extends SysuiBaseFragmentTest { public void setupFragment() throws Exception { MockitoAnnotations.initMocks(this); + mCommandQueue = new CommandQueue(mContext); setupSysuiDependency(); createRootView(); mOverviewProxyService = @@ -150,8 +151,6 @@ public class NavigationBarFragmentTest extends SysuiBaseFragmentTest { } private void setupSysuiDependency() { - mCommandQueue = new CommandQueue(mContext); - mSysuiContext.putComponent(CommandQueue.class, mCommandQueue); mSysuiContext.putComponent(StatusBar.class, mock(StatusBar.class)); mSysuiContext.putComponent(Recents.class, mock(Recents.class)); mSysuiContext.putComponent(Divider.class, mock(Divider.class)); @@ -160,7 +159,6 @@ public class NavigationBarFragmentTest extends SysuiBaseFragmentTest { new DisplayInfo(), DEFAULT_DISPLAY_ADJUSTMENTS); mSysuiTestableContextExternal = (SysuiTestableContext) mSysuiContext.createDisplayContext( display); - mSysuiTestableContextExternal.putComponent(CommandQueue.class, mCommandQueue); mSysuiTestableContextExternal.putComponent(StatusBar.class, mock(StatusBar.class)); mSysuiTestableContextExternal.putComponent(Recents.class, mock(Recents.class)); mSysuiTestableContextExternal.putComponent(Divider.class, mock(Divider.class)); @@ -252,7 +250,8 @@ public class NavigationBarFragmentTest extends SysuiBaseFragmentTest { mock(NavigationModeController.class), mock(StatusBarStateController.class), mMockSysUiState, - mBroadcastDispatcher); + mBroadcastDispatcher, + mCommandQueue); } private class HostCallbacksForExternalDisplay extends diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarTransitionsTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarTransitionsTest.java index 1e9378aea075..27a50027cfe2 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarTransitionsTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarTransitionsTest.java @@ -54,11 +54,10 @@ public class NavigationBarTransitionsTest extends SysuiTestCase { mDependency.injectMockDependency(StatusBarStateController.class); mDependency.injectMockDependency(KeyguardStateController.class); - mContext.putComponent(CommandQueue.class, mock(CommandQueue.class)); NavigationBarView navBar = spy(new NavigationBarView(mContext, null)); when(navBar.getCurrentView()).thenReturn(navBar); when(navBar.findViewById(anyInt())).thenReturn(navBar); - mTransitions = new NavigationBarTransitions(navBar); + mTransitions = new NavigationBarTransitions(navBar, mock(CommandQueue.class)); } @Test diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java index 4853f2023172..280cc90c0ca4 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java @@ -45,6 +45,7 @@ import com.android.systemui.doze.DozeLog; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.shared.plugins.PluginManager; +import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.KeyguardAffordanceView; import com.android.systemui.statusbar.NotificationLockscreenUserManager; import com.android.systemui.statusbar.NotificationShelf; @@ -246,7 +247,8 @@ public class NotificationPanelViewTest extends SysuiTestCase { mock(KeyguardStateController.class), statusBarStateController, mock(DozeLog.class), - mDozeParameters); + mDozeParameters, + new CommandQueue(NotificationPanelViewTest.this.mContext)); mNotificationStackScroller = mNotificationStackScrollLayout; mKeyguardStatusView = NotificationPanelViewTest.this.mKeyguardStatusView; mKeyguardStatusBar = NotificationPanelViewTest.this.mKeyguardStatusBar; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarIconControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarIconControllerTest.java index a27ed1eba726..7b7e2d3e34df 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarIconControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarIconControllerTest.java @@ -31,6 +31,7 @@ import androidx.test.filters.SmallTest; import com.android.internal.statusbar.StatusBarIcon; import com.android.systemui.plugins.DarkIconDispatcher; +import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.StatusBarIconView; import com.android.systemui.statusbar.StatusBarMobileView; import com.android.systemui.statusbar.StatusBarWifiView; @@ -59,14 +60,14 @@ public class StatusBarIconControllerTest extends LeakCheckedTest { @Test public void testSetCalledOnAdd_IconManager() { LinearLayout layout = new LinearLayout(mContext); - TestIconManager manager = new TestIconManager(layout); + TestIconManager manager = new TestIconManager(layout, new CommandQueue(mContext)); testCallOnAdd_forManager(manager); } @Test public void testSetCalledOnAdd_DarkIconManager() { LinearLayout layout = new LinearLayout(mContext); - TestDarkIconManager manager = new TestDarkIconManager(layout); + TestDarkIconManager manager = new TestDarkIconManager(layout, new CommandQueue(mContext)); testCallOnAdd_forManager(manager); } @@ -103,8 +104,8 @@ public class StatusBarIconControllerTest extends LeakCheckedTest { private static class TestDarkIconManager extends DarkIconManager implements TestableIconManager { - public TestDarkIconManager(LinearLayout group) { - super(group); + TestDarkIconManager(LinearLayout group, CommandQueue commandQueue) { + super(group, commandQueue); } @Override @@ -138,8 +139,8 @@ public class StatusBarIconControllerTest extends LeakCheckedTest { } private static class TestIconManager extends IconManager implements TestableIconManager { - public TestIconManager(ViewGroup group) { - super(group); + TestIconManager(ViewGroup group, CommandQueue commandQueue) { + super(group, commandQueue); } @Override diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.java index c0c42ef9c1bf..de87d3197ef6 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.java @@ -86,7 +86,6 @@ public class StatusBarNotificationPresenterTest extends SysuiTestCase { mMetricsLogger = new FakeMetricsLogger(); mDependency.injectTestDependency(MetricsLogger.class, mMetricsLogger); mCommandQueue = new CommandQueue(mContext); - mContext.putComponent(CommandQueue.class, mCommandQueue); mDependency.injectTestDependency(StatusBarStateController.class, mock(SysuiStatusBarStateController.class)); mDependency.injectTestDependency(ShadeController.class, mShadeController); @@ -115,7 +114,8 @@ public class StatusBarNotificationPresenterTest extends SysuiTestCase { mock(DozeScrimController.class), mock(ScrimController.class), mock(ActivityLaunchAnimator.class), mock(DynamicPrivacyController.class), mock(NotificationAlertingManager.class), - mock(NotificationRowBinderImpl.class), mock(KeyguardStateController.class)); + mock(NotificationRowBinderImpl.class), mock(KeyguardStateController.class), + mCommandQueue); } @Test diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallbackTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallbackTest.java index a65f5a503375..b1b66b5360e3 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallbackTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallbackTest.java @@ -68,12 +68,11 @@ public class StatusBarRemoteInputCallbackTest extends SysuiTestCase { mDependency.injectTestDependency(ShadeController.class, mShadeController); mDependency.injectTestDependency(NotificationLockscreenUserManager.class, mNotificationLockscreenUserManager); - mContext.putComponent(CommandQueue.class, mock(CommandQueue.class)); mRemoteInputCallback = spy(new StatusBarRemoteInputCallback(mContext, mock(NotificationGroupManager.class), mNotificationLockscreenUserManager, mKeyguardStateController, mStatusBarStateController, mActivityStarter, - mShadeController)); + mShadeController, new CommandQueue(mContext))); mRemoteInputCallback.mChallengeReceiver = mRemoteInputCallback.new ChallengeReceiver(); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java index 46327a712a08..bace30b1e00b 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java @@ -155,7 +155,6 @@ public class StatusBarTest extends SysuiTestCase { private FakeMetricsLogger mMetricsLogger; private PowerManager mPowerManager; private TestableNotificationInterruptionStateProvider mNotificationInterruptionStateProvider; - private CommandQueue mCommandQueue; @Mock private FeatureFlags mFeatureFlags; @Mock private LightBarController mLightBarController; @@ -230,6 +229,7 @@ public class StatusBarTest extends SysuiTestCase { @Mock private LinearLayout mLockIconContainer; @Mock private ViewMediatorCallback mKeyguardVieMediatorCallback; @Mock private KeyguardLiftController mKeyguardLiftController; + @Mock private CommandQueue mCommandQueue; @Before public void setup() throws Exception { @@ -257,9 +257,7 @@ public class StatusBarTest extends SysuiTestCase { mExpansionStateLogger); notificationLogger.setVisibilityReporter(mock(Runnable.class)); - mCommandQueue = mock(CommandQueue.class); when(mCommandQueue.asBinder()).thenReturn(new Binder()); - mContext.putComponent(CommandQueue.class, mCommandQueue); mContext.setTheme(R.style.Theme_SystemUI_Light); @@ -321,7 +319,8 @@ public class StatusBarTest extends SysuiTestCase { mBroadcastDispatcher, new RemoteInputQuickSettingsDisabler( mContext, - configurationController + configurationController, + mCommandQueue ), mNotificationGutsManager, notificationLogger, @@ -366,7 +365,8 @@ public class StatusBarTest extends SysuiTestCase { mBiometricUnlockControllerLazy, mDozeServiceHost, mPowerManager, - mDozeScrimController); + mDozeScrimController, + mCommandQueue); when(mStatusBarWindowView.findViewById(R.id.lock_icon_container)).thenReturn( mLockIconContainer); @@ -384,7 +384,6 @@ public class StatusBarTest extends SysuiTestCase { mStatusBar.mComponents = mContext.getComponents(); mStatusBar.mStatusBarWindow = mStatusBarWindowView; mStatusBar.mNotificationPanel = mNotificationPanelView; - mStatusBar.mCommandQueue = mCommandQueue; mStatusBar.mDozeScrimController = mDozeScrimController; mStatusBar.mNotificationIconAreaController = mNotificationIconAreaController; mStatusBar.mPresenter = mNotificationPresenter; @@ -403,7 +402,6 @@ public class StatusBarTest extends SysuiTestCase { @Test public void testSetBouncerShowing_noCrash() { - mStatusBar.mCommandQueue = mock(CommandQueue.class); mStatusBar.setBouncerShowing(true); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarWindowViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarWindowViewTest.java index 7c1dfa6c4f54..20fb6599f66e 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarWindowViewTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarWindowViewTest.java @@ -31,6 +31,7 @@ import com.android.systemui.SysuiTestCase; import com.android.systemui.classifier.FalsingManagerFake; import com.android.systemui.doze.DozeLog; import com.android.systemui.shared.plugins.PluginManager; +import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.DragDownHelper; import com.android.systemui.statusbar.NotificationLockscreenUserManager; import com.android.systemui.statusbar.PulseExpansionHandler; @@ -96,7 +97,8 @@ public class StatusBarWindowViewTest extends SysuiTestCase { mKeyguardStateController, mStatusBarStateController, mDozeLog, - mDozeParameters) + mDozeParameters, + new CommandQueue(mContext)) .setShadeController(mShadeController) .setStatusBarWindowView(mView) .build(); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisablerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisablerTest.java index fea3a08663e1..b359b9ce6287 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisablerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/RemoteInputQuickSettingsDisablerTest.java @@ -35,12 +35,14 @@ import com.android.systemui.statusbar.policy.ConfigurationController; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Mock; import org.mockito.MockitoAnnotations; @SmallTest @RunWith(AndroidJUnit4.class) public class RemoteInputQuickSettingsDisablerTest extends SysuiTestCase { + @Mock private CommandQueue mCommandQueue; private RemoteInputQuickSettingsDisabler mRemoteInputQuickSettingsDisabler; @@ -48,11 +50,8 @@ public class RemoteInputQuickSettingsDisablerTest extends SysuiTestCase { public void setUp() throws Exception { MockitoAnnotations.initMocks(this); - mCommandQueue = mock(CommandQueue.class); - mContext.putComponent(CommandQueue.class, mCommandQueue); - mRemoteInputQuickSettingsDisabler = new RemoteInputQuickSettingsDisabler(mContext, - mock(ConfigurationController.class)); + mock(ConfigurationController.class), mCommandQueue); } @Test |