diff options
author | 2024-02-20 16:49:02 -0500 | |
---|---|---|
committer | 2024-02-22 19:25:36 +0000 | |
commit | 3d081274562d3c8d038f237ff7d169d5a85abbbc (patch) | |
tree | 243f3360dc274fd3f76e24205af907a9c1d4fa7e | |
parent | 2e04ffb1e9998d033aa419c49f7f293c0d7ccc20 (diff) |
Require explicit @Background for background Executor
Right now, you can get a @Background Executor (or a couple variants)
without specifying @Background, just by default. This is ambiguous and
error-prone (I found at least one mistake writing this CL!), so remove
those default methods, require every caller to specify that they want to
use the background thread, and update the handful of callers who weren't
specifying as such.
Bug: 325623608
Test: builds, presubmit
Flag: NA
Change-Id: I0a38a530d0bd3075acc6d654be8903f71ff908ad
8 files changed, 27 insertions, 46 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/bluetooth/BroadcastDialogDelegate.java b/packages/SystemUI/src/com/android/systemui/bluetooth/BroadcastDialogDelegate.java index 00bbb20ed4f9..6af0fa069dbc 100644 --- a/packages/SystemUI/src/com/android/systemui/bluetooth/BroadcastDialogDelegate.java +++ b/packages/SystemUI/src/com/android/systemui/bluetooth/BroadcastDialogDelegate.java @@ -40,6 +40,7 @@ import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast; import com.android.settingslib.bluetooth.LocalBluetoothManager; import com.android.settingslib.media.MediaOutputConstants; import com.android.systemui.broadcast.BroadcastSender; +import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.media.controls.util.MediaDataUtils; import com.android.systemui.media.dialog.MediaOutputDialogFactory; import com.android.systemui.res.R; @@ -74,7 +75,7 @@ public class BroadcastDialogDelegate implements SystemUIDialog.Delegate { private final SystemUIDialog.Factory mSystemUIDialogFactory; private final String mCurrentBroadcastApp; private final String mOutputPackageName; - private final Executor mExecutor; + private final Executor mBgExecutor; private boolean mShouldLaunchLeBroadcastDialog; private Button mSwitchBroadcast; @@ -159,7 +160,7 @@ public class BroadcastDialogDelegate implements SystemUIDialog.Delegate { MediaOutputDialogFactory mediaOutputDialogFactory, @Nullable LocalBluetoothManager localBluetoothManager, UiEventLogger uiEventLogger, - Executor executor, + @Background Executor bgExecutor, BroadcastSender broadcastSender, SystemUIDialog.Factory systemUIDialogFactory, @Assisted(CURRENT_BROADCAST_APP) String currentBroadcastApp, @@ -171,7 +172,7 @@ public class BroadcastDialogDelegate implements SystemUIDialog.Delegate { mCurrentBroadcastApp = currentBroadcastApp; mOutputPackageName = outputPkgName; mUiEventLogger = uiEventLogger; - mExecutor = executor; + mBgExecutor = bgExecutor; mBroadcastSender = broadcastSender; if (DEBUG) { @@ -187,7 +188,7 @@ public class BroadcastDialogDelegate implements SystemUIDialog.Delegate { @Override public void onStart(SystemUIDialog dialog) { mDialogs.add(dialog); - registerBroadcastCallBack(mExecutor, mBroadcastCallback); + registerBroadcastCallBack(mBgExecutor, mBroadcastCallback); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlActionCoordinatorImpl.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlActionCoordinatorImpl.kt index 0f038e10dd4e..bc07b95c5d7f 100644 --- a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlActionCoordinatorImpl.kt +++ b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlActionCoordinatorImpl.kt @@ -36,6 +36,7 @@ import com.android.systemui.broadcast.BroadcastSender import com.android.systemui.controls.ControlsMetricsLogger import com.android.systemui.controls.settings.ControlsSettingsRepository import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.plugins.ActivityStarter import com.android.systemui.statusbar.VibratorHelper @@ -47,16 +48,16 @@ import javax.inject.Inject @SysUISingleton class ControlActionCoordinatorImpl @Inject constructor( - private val context: Context, - private val bgExecutor: DelayableExecutor, - @Main private val uiExecutor: DelayableExecutor, - private val activityStarter: ActivityStarter, - private val broadcastSender: BroadcastSender, - private val keyguardStateController: KeyguardStateController, - private val taskViewFactory: Optional<TaskViewFactory>, - private val controlsMetricsLogger: ControlsMetricsLogger, - private val vibrator: VibratorHelper, - private val controlsSettingsRepository: ControlsSettingsRepository, + private val context: Context, + @Background private val bgExecutor: DelayableExecutor, + @Main private val uiExecutor: DelayableExecutor, + private val activityStarter: ActivityStarter, + private val broadcastSender: BroadcastSender, + private val keyguardStateController: KeyguardStateController, + private val taskViewFactory: Optional<TaskViewFactory>, + private val controlsMetricsLogger: ControlsMetricsLogger, + private val vibrator: VibratorHelper, + private val controlsSettingsRepository: ControlsSettingsRepository, ) : ControlActionCoordinator { private var dialog: Dialog? = null private var pendingAction: Action? = null diff --git a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiver.kt b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiver.kt index 416eae1b2d0c..4f062afc2af7 100644 --- a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiver.kt +++ b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiver.kt @@ -72,7 +72,7 @@ open class MediaTttChipControllerReceiver @Inject constructor( context: Context, logger: MediaTttReceiverLogger, windowManager: WindowManager, - mainExecutor: DelayableExecutor, + @Main mainExecutor: DelayableExecutor, accessibilityManager: AccessibilityManager, configurationController: ConfigurationController, dumpManager: DumpManager, diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/VisualStabilityCoordinator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/VisualStabilityCoordinator.java index 8189fe03b2ed..dfe6cd5f25b8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/VisualStabilityCoordinator.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/VisualStabilityCoordinator.java @@ -25,6 +25,7 @@ import androidx.annotation.VisibleForTesting; import com.android.systemui.Dumpable; import com.android.systemui.dagger.SysUISingleton; +import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dump.DumpManager; import com.android.systemui.keyguard.WakefulnessLifecycle; import com.android.systemui.plugins.statusbar.StatusBarStateController; @@ -92,7 +93,7 @@ public class VisualStabilityCoordinator implements Coordinator, Dumpable { @Inject public VisualStabilityCoordinator( - DelayableExecutor delayableExecutor, + @Background DelayableExecutor delayableExecutor, DumpManager dumpManager, HeadsUpManager headsUpManager, ShadeAnimationInteractor shadeAnimationInteractor, diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarter.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarter.java index 4fd33ba458d8..5610ed926f70 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarter.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarter.java @@ -55,6 +55,7 @@ import com.android.systemui.EventLogTags; import com.android.systemui.animation.ActivityTransitionAnimator; import com.android.systemui.assist.AssistManager; import com.android.systemui.dagger.SysUISingleton; +import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dagger.qualifiers.DisplayId; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.power.domain.interactor.PowerInteractor; @@ -138,7 +139,7 @@ public class StatusBarNotificationActivityStarter implements NotificationActivit Context context, @DisplayId int displayId, Handler mainThreadHandler, - Executor uiBgExecutor, + @Background Executor uiBgExecutor, NotificationVisibilityProvider visibilityProvider, HeadsUpManager headsUpManager, ActivityStarter activityStarter, diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryStateNotifier.kt b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryStateNotifier.kt index a078dd5cf28c..2ad4d361df1f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryStateNotifier.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryStateNotifier.kt @@ -23,6 +23,7 @@ import android.app.PendingIntent import android.content.Context import android.content.Intent import android.net.Uri +import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.res.R import com.android.systemui.util.concurrency.DelayableExecutor import javax.inject.Inject @@ -34,7 +35,7 @@ import javax.inject.Inject class BatteryStateNotifier @Inject constructor( val controller: BatteryController, val noMan: NotificationManager, - val delayableExecutor: DelayableExecutor, + @Background val delayableExecutor: DelayableExecutor, val context: Context ) : BatteryController.BatteryStateChangeCallback { var stateUnknown = false diff --git a/packages/SystemUI/src/com/android/systemui/util/concurrency/SysUIConcurrencyModule.java b/packages/SystemUI/src/com/android/systemui/util/concurrency/SysUIConcurrencyModule.java index 6124f6383fff..2cad8442e3ba 100644 --- a/packages/SystemUI/src/com/android/systemui/util/concurrency/SysUIConcurrencyModule.java +++ b/packages/SystemUI/src/com/android/systemui/util/concurrency/SysUIConcurrencyModule.java @@ -124,15 +124,6 @@ public abstract class SysUIConcurrencyModule { } /** - * Provide a Background-Thread Executor by default. - */ - @Provides - @SysUISingleton - public static Executor provideExecutor(@Background Looper looper) { - return new ExecutorImpl(looper); - } - - /** * Provide a BroadcastRunning Executor (for sending and receiving broadcasts). */ @Provides @@ -174,15 +165,6 @@ public abstract class SysUIConcurrencyModule { } /** - * Provide a Background-Thread Executor by default. - */ - @Provides - @SysUISingleton - public static DelayableExecutor provideDelayableExecutor(@Background Looper looper) { - return new ExecutorImpl(looper); - } - - /** * Provide a Background-Thread Executor. */ @Provides @@ -193,15 +175,6 @@ public abstract class SysUIConcurrencyModule { } /** - * Provide a Background-Thread Executor by default. - */ - @Provides - @SysUISingleton - public static RepeatableExecutor provideRepeatableExecutor(@Background DelayableExecutor exec) { - return new RepeatableExecutorImpl(exec); - } - - /** * Provide a Background-Thread Executor. */ @Provides diff --git a/packages/SystemUI/src/com/android/systemui/util/service/PersistentConnectionManager.java b/packages/SystemUI/src/com/android/systemui/util/service/PersistentConnectionManager.java index 9b72eb710588..5979f3e60cb9 100644 --- a/packages/SystemUI/src/com/android/systemui/util/service/PersistentConnectionManager.java +++ b/packages/SystemUI/src/com/android/systemui/util/service/PersistentConnectionManager.java @@ -28,6 +28,7 @@ import android.util.Log; import androidx.annotation.NonNull; import com.android.systemui.Dumpable; +import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dump.DumpManager; import com.android.systemui.util.concurrency.DelayableExecutor; import com.android.systemui.util.time.SystemClock; @@ -94,10 +95,12 @@ public class PersistentConnectionManager<T> implements Dumpable { } }; + // TODO: b/326449074 - Ensure the DelayableExecutor is on the correct thread, and update the + // qualifier (to @Main) or name (to bgExecutor) to be consistent with that. @Inject public PersistentConnectionManager( SystemClock clock, - DelayableExecutor mainExecutor, + @Background DelayableExecutor mainExecutor, DumpManager dumpManager, @Named(DUMPSYS_NAME) String dumpsysName, @Named(SERVICE_CONNECTION) ObservableServiceConnection<T> serviceConnection, |