From 6200973f15e67e392224b38d5575d83b2994f32e Mon Sep 17 00:00:00 2001 From: Evan Laird Date: Wed, 9 Feb 2022 17:51:57 -0500 Subject: [PATCH] Use fullscreen user switcher if available Test: manual Bug: 217250837 Change-Id: I22c264ea8ccd19b2808dcbf3159f7845d3566e97 --- .../StatusBarUserSwitcherController.kt | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/userswitcher/StatusBarUserSwitcherController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/userswitcher/StatusBarUserSwitcherController.kt index a1247539c6605..909261f0eb7e6 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/userswitcher/StatusBarUserSwitcherController.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/userswitcher/StatusBarUserSwitcherController.kt @@ -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(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()