diff --git a/packages/SystemUI/src/com/android/systemui/flags/Flags.java b/packages/SystemUI/src/com/android/systemui/flags/Flags.java index fde19b621df31..2e218ec0c7a47 100644 --- a/packages/SystemUI/src/com/android/systemui/flags/Flags.java +++ b/packages/SystemUI/src/com/android/systemui/flags/Flags.java @@ -115,8 +115,8 @@ public class Flags { *

If this is {@code false}, the interactor and repo skip the controller and directly access * the framework APIs. */ - public static final ReleasedFlag USER_INTERACTOR_AND_REPO_USE_CONTROLLER = - new ReleasedFlag(210); + public static final UnreleasedFlag USER_INTERACTOR_AND_REPO_USE_CONTROLLER = + new UnreleasedFlag(210); /** * Whether `UserSwitcherController` should use the user interactor. @@ -127,7 +127,7 @@ public class Flags { *

Note: do not set this to true if {@link #USER_INTERACTOR_AND_REPO_USE_CONTROLLER} is * {@code true} as it would created a cycle between controller -> interactor -> controller. */ - public static final UnreleasedFlag USER_CONTROLLER_USES_INTERACTOR = new UnreleasedFlag(211); + public static final ReleasedFlag USER_CONTROLLER_USES_INTERACTOR = new ReleasedFlag(211); /***************************************/ // 300 - power menu diff --git a/packages/SystemUI/src/com/android/systemui/user/ui/dialog/UserSwitcherDialogCoordinator.kt b/packages/SystemUI/src/com/android/systemui/user/ui/dialog/UserSwitcherDialogCoordinator.kt index 91c592177d193..f7e19c0ca8101 100644 --- a/packages/SystemUI/src/com/android/systemui/user/ui/dialog/UserSwitcherDialogCoordinator.kt +++ b/packages/SystemUI/src/com/android/systemui/user/ui/dialog/UserSwitcherDialogCoordinator.kt @@ -30,6 +30,7 @@ import com.android.systemui.flags.Flags import com.android.systemui.plugins.FalsingManager import com.android.systemui.user.domain.interactor.UserInteractor import com.android.systemui.user.domain.model.ShowDialogRequestModel +import dagger.Lazy import javax.inject.Inject import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.collect @@ -41,19 +42,19 @@ import kotlinx.coroutines.launch class UserSwitcherDialogCoordinator @Inject constructor( - @Application private val context: Context, - @Application private val applicationScope: CoroutineScope, - private val falsingManager: FalsingManager, - private val broadcastSender: BroadcastSender, - private val dialogLaunchAnimator: DialogLaunchAnimator, - private val interactor: UserInteractor, - private val featureFlags: FeatureFlags, + @Application private val context: Lazy, + @Application private val applicationScope: Lazy, + private val falsingManager: Lazy, + private val broadcastSender: Lazy, + private val dialogLaunchAnimator: Lazy, + private val interactor: Lazy, + private val featureFlags: Lazy, ) : CoreStartable { private var currentDialog: Dialog? = null override fun start() { - if (featureFlags.isEnabled(Flags.USER_INTERACTOR_AND_REPO_USE_CONTROLLER)) { + if (featureFlags.get().isEnabled(Flags.USER_INTERACTOR_AND_REPO_USE_CONTROLLER)) { return } @@ -62,8 +63,8 @@ constructor( } private fun startHandlingDialogShowRequests() { - applicationScope.launch { - interactor.dialogShowRequests.filterNotNull().collect { request -> + applicationScope.get().launch { + interactor.get().dialogShowRequests.filterNotNull().collect { request -> currentDialog?.let { if (it.isShowing) { it.cancel() @@ -74,48 +75,48 @@ constructor( when (request) { is ShowDialogRequestModel.ShowAddUserDialog -> AddUserDialog( - context = context, + context = context.get(), userHandle = request.userHandle, isKeyguardShowing = request.isKeyguardShowing, showEphemeralMessage = request.showEphemeralMessage, - falsingManager = falsingManager, - broadcastSender = broadcastSender, - dialogLaunchAnimator = dialogLaunchAnimator, + falsingManager = falsingManager.get(), + broadcastSender = broadcastSender.get(), + dialogLaunchAnimator = dialogLaunchAnimator.get(), ) is ShowDialogRequestModel.ShowUserCreationDialog -> UserCreatingDialog( - context, + context.get(), request.isGuest, ) is ShowDialogRequestModel.ShowExitGuestDialog -> ExitGuestDialog( - context = context, + context = context.get(), guestUserId = request.guestUserId, isGuestEphemeral = request.isGuestEphemeral, targetUserId = request.targetUserId, isKeyguardShowing = request.isKeyguardShowing, - falsingManager = falsingManager, - dialogLaunchAnimator = dialogLaunchAnimator, + falsingManager = falsingManager.get(), + dialogLaunchAnimator = dialogLaunchAnimator.get(), onExitGuestUserListener = request.onExitGuestUser, ) } currentDialog?.show() - interactor.onDialogShown() + interactor.get().onDialogShown() } } } private fun startHandlingDialogDismissRequests() { - applicationScope.launch { - interactor.dialogDismissRequests.filterNotNull().collect { + applicationScope.get().launch { + interactor.get().dialogDismissRequests.filterNotNull().collect { currentDialog?.let { if (it.isShowing) { it.cancel() } } - interactor.onDialogDismissed() + interactor.get().onDialogDismissed() } } }