Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 30c7663a authored by Winson Chung's avatar Winson Chung
Browse files

Move some providers to prevent accidental injection of main-thread elements

- Each Choreographer instance is actually thread-local, and moving this
  to the SysUIConcurrencyModule also helps to ensure that WMShell
  components can't accidentally inject a non-ShellMainThread
  Choreographer instance
- Also remove the deprecated non-qualified Handler global provider for
  the same reason

Bug: 396003707
Test: m SystemUI TvSystemUI ClockworkSystemUI
Flag: EXEMPT bugfix
Change-Id: Idb733066d515e80773fb8cc08e9cc13ab1b4229e
parent c51b1acb
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -92,7 +92,7 @@ public class TvWMShellModule {
            MultiInstanceHelper multiInstanceHelper,
            SplitState splitState,
            @ShellMainThread ShellExecutor mainExecutor,
            Handler mainHandler,
            @ShellMainThread Handler mainHandler,
            SystemWindows systemWindows) {
        return new TvSplitScreenController(context, shellInit, shellCommandHandler, shellController,
                shellTaskOrganizer, syncQueue, rootTDAOrganizer, displayController,
+2 −1
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import com.android.systemui.animation.DialogCuj
import com.android.systemui.animation.DialogTransitionAnimator
import com.android.systemui.animation.Expandable
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.statusbar.phone.SystemUIDialog
import javax.inject.Inject
@@ -33,7 +34,7 @@ constructor(
    private val extraDimDialogDelegateProvider: Provider<ExtraDimDialogDelegate>,
    private val mActivityStarter: ActivityStarter,
    private val dialogTransitionAnimator: DialogTransitionAnimator,
    private val mainHandler: Handler,
    @Main private val mainHandler: Handler,
) {
    private var dialog: SystemUIDialog? = null

+2 −1
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ import com.android.systemui.accessibility.AccessibilityButtonModeObserver;
import com.android.systemui.accessibility.AccessibilityButtonModeObserver.AccessibilityButtonMode;
import com.android.systemui.accessibility.AccessibilityButtonTargetsObserver;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.navigationbar.NavigationModeController;
import com.android.systemui.settings.DisplayTracker;
import com.android.systemui.util.settings.SecureSettings;
@@ -114,7 +115,7 @@ public class AccessibilityFloatingMenuController implements
            SecureSettings secureSettings,
            DisplayTracker displayTracker,
            NavigationModeController navigationModeController,
            Handler handler) {
            @Main Handler handler) {
        mContext = context;
        mWindowManager = windowManager;
        mViewCaptureAwareWindowManager = viewCaptureAwareWindowManager;
+1 −1
Original line number Diff line number Diff line
@@ -149,7 +149,7 @@ public class BiometricNotificationService implements CoreStartable {
    public BiometricNotificationService(@NonNull @Main Context context,
            @NonNull KeyguardUpdateMonitor keyguardUpdateMonitor,
            @NonNull KeyguardStateController keyguardStateController,
            @NonNull Handler handler, @NonNull NotificationManager notificationManager,
            @NonNull @Main Handler handler, @NonNull NotificationManager notificationManager,
            @NonNull BiometricNotificationBroadcastReceiver biometricNotificationBroadcastReceiver,
            @NonNull Optional<FingerprintReEnrollNotification> fingerprintReEnrollNotification,
            @Nullable FingerprintManager fingerprintManager,
+2 −1
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import com.android.systemui.broadcast.BroadcastDispatcher
import com.android.systemui.communal.domain.interactor.CommunalInteractor
import com.android.systemui.communal.widgets.CommunalWidgetModule
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.log.LogBuffer
import com.android.systemui.log.core.Logger
import com.android.systemui.log.dagger.CommunalLog
@@ -43,7 +44,7 @@ constructor(
    private val communalInteractor: CommunalInteractor,
    @CommunalLog logBuffer: LogBuffer,
    private val secureSettings: SecureSettings,
    handler: Handler,
    @Main handler: Handler,
) : CoreStartable, BroadcastReceiver() {

    private val logger = Logger(logBuffer, TAG)
Loading