Use fullscreen user switcher if available

Test: manual
Bug: 217250837
Change-Id: I22c264ea8ccd19b2808dcbf3159f7845d3566e97
This commit is contained in:
Evan Laird
2022-02-09 17:51:57 -05:00
parent bc661bfc3e
commit 6200973f15

View File

@@ -16,9 +16,15 @@
package com.android.systemui.statusbar.phone.userswitcher
import android.content.Intent
import android.view.View
import com.android.systemui.animation.ActivityLaunchAnimator
import com.android.systemui.flags.FeatureFlags
import com.android.systemui.flags.Flags
import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.qs.user.UserSwitchDialogController
import com.android.systemui.user.UserSwitcherActivity
import com.android.systemui.util.ViewController
import javax.inject.Inject
@@ -30,7 +36,9 @@ class StatusBarUserSwitcherControllerImpl @Inject constructor(
view: StatusBarUserSwitcherContainer,
private val tracker: StatusBarUserInfoTracker,
private val featureController: StatusBarUserSwitcherFeatureController,
private val userSwitcherDialogController: UserSwitchDialogController
private val userSwitcherDialogController: UserSwitchDialogController,
private val featureFlags: FeatureFlags,
private val activityStarter: ActivityStarter
) : ViewController<StatusBarUserSwitcherContainer>(view),
StatusBarUserSwitcherController {
private val listener = object : CurrentUserChipInfoUpdatedListener {
@@ -52,8 +60,17 @@ class StatusBarUserSwitcherControllerImpl @Inject constructor(
override fun onViewAttached() {
tracker.addCallback(listener)
featureController.addCallback(featureFlagListener)
mView.setOnClickListener {
userSwitcherDialogController.showDialog(it)
mView.setOnClickListener { view: View ->
if (featureFlags.isEnabled(Flags.FULL_SCREEN_USER_SWITCHER)) {
val intent = Intent(context, UserSwitcherActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK)
activityStarter.startActivity(intent, true /* dismissShade */,
ActivityLaunchAnimator.Controller.fromView(view, null),
true /* showOverlockscreenwhenlocked */)
} else {
userSwitcherDialogController.showDialog(view)
}
}
updateEnabled()