Merge "User switcher dialog morphs again." into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
a24fa7985f
@@ -429,6 +429,7 @@ constructor(
|
|||||||
isGuestEphemeral = currentlySelectedUserInfo.isEphemeral,
|
isGuestEphemeral = currentlySelectedUserInfo.isEphemeral,
|
||||||
isKeyguardShowing = keyguardInteractor.isKeyguardShowing(),
|
isKeyguardShowing = keyguardInteractor.isKeyguardShowing(),
|
||||||
onExitGuestUser = this::exitGuestUser,
|
onExitGuestUser = this::exitGuestUser,
|
||||||
|
dialogShower = dialogShower,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
@@ -443,6 +444,7 @@ constructor(
|
|||||||
isGuestEphemeral = currentlySelectedUserInfo.isEphemeral,
|
isGuestEphemeral = currentlySelectedUserInfo.isEphemeral,
|
||||||
isKeyguardShowing = keyguardInteractor.isKeyguardShowing(),
|
isKeyguardShowing = keyguardInteractor.isKeyguardShowing(),
|
||||||
onExitGuestUser = this::exitGuestUser,
|
onExitGuestUser = this::exitGuestUser,
|
||||||
|
dialogShower = dialogShower,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
@@ -477,6 +479,7 @@ constructor(
|
|||||||
userHandle = currentUser.userHandle,
|
userHandle = currentUser.userHandle,
|
||||||
isKeyguardShowing = keyguardInteractor.isKeyguardShowing(),
|
isKeyguardShowing = keyguardInteractor.isKeyguardShowing(),
|
||||||
showEphemeralMessage = currentUser.isGuest && currentUser.isEphemeral,
|
showEphemeralMessage = currentUser.isGuest && currentUser.isEphemeral,
|
||||||
|
dialogShower = dialogShower,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,14 +18,18 @@
|
|||||||
package com.android.systemui.user.domain.model
|
package com.android.systemui.user.domain.model
|
||||||
|
|
||||||
import android.os.UserHandle
|
import android.os.UserHandle
|
||||||
|
import com.android.systemui.qs.user.UserSwitchDialogController
|
||||||
|
|
||||||
/** Encapsulates a request to show a dialog. */
|
/** Encapsulates a request to show a dialog. */
|
||||||
sealed class ShowDialogRequestModel {
|
sealed class ShowDialogRequestModel(
|
||||||
|
open val dialogShower: UserSwitchDialogController.DialogShower? = null,
|
||||||
|
) {
|
||||||
data class ShowAddUserDialog(
|
data class ShowAddUserDialog(
|
||||||
val userHandle: UserHandle,
|
val userHandle: UserHandle,
|
||||||
val isKeyguardShowing: Boolean,
|
val isKeyguardShowing: Boolean,
|
||||||
val showEphemeralMessage: Boolean,
|
val showEphemeralMessage: Boolean,
|
||||||
) : ShowDialogRequestModel()
|
override val dialogShower: UserSwitchDialogController.DialogShower?,
|
||||||
|
) : ShowDialogRequestModel(dialogShower)
|
||||||
|
|
||||||
data class ShowUserCreationDialog(
|
data class ShowUserCreationDialog(
|
||||||
val isGuest: Boolean,
|
val isGuest: Boolean,
|
||||||
@@ -37,5 +41,6 @@ sealed class ShowDialogRequestModel {
|
|||||||
val isGuestEphemeral: Boolean,
|
val isGuestEphemeral: Boolean,
|
||||||
val isKeyguardShowing: Boolean,
|
val isKeyguardShowing: Boolean,
|
||||||
val onExitGuestUser: (guestId: Int, targetId: Int, forceRemoveGuest: Boolean) -> Unit,
|
val onExitGuestUser: (guestId: Int, targetId: Int, forceRemoveGuest: Boolean) -> Unit,
|
||||||
) : ShowDialogRequestModel()
|
override val dialogShower: UserSwitchDialogController.DialogShower?,
|
||||||
|
) : ShowDialogRequestModel(dialogShower)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,8 +19,10 @@ package com.android.systemui.user.ui.dialog
|
|||||||
|
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import com.android.internal.jank.InteractionJankMonitor
|
||||||
import com.android.settingslib.users.UserCreatingDialog
|
import com.android.settingslib.users.UserCreatingDialog
|
||||||
import com.android.systemui.CoreStartable
|
import com.android.systemui.CoreStartable
|
||||||
|
import com.android.systemui.animation.DialogCuj
|
||||||
import com.android.systemui.animation.DialogLaunchAnimator
|
import com.android.systemui.animation.DialogLaunchAnimator
|
||||||
import com.android.systemui.broadcast.BroadcastSender
|
import com.android.systemui.broadcast.BroadcastSender
|
||||||
import com.android.systemui.dagger.SysUISingleton
|
import com.android.systemui.dagger.SysUISingleton
|
||||||
@@ -71,37 +73,58 @@ constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
currentDialog =
|
val (dialog, dialogCuj) =
|
||||||
when (request) {
|
when (request) {
|
||||||
is ShowDialogRequestModel.ShowAddUserDialog ->
|
is ShowDialogRequestModel.ShowAddUserDialog ->
|
||||||
AddUserDialog(
|
Pair(
|
||||||
context = context.get(),
|
AddUserDialog(
|
||||||
userHandle = request.userHandle,
|
context = context.get(),
|
||||||
isKeyguardShowing = request.isKeyguardShowing,
|
userHandle = request.userHandle,
|
||||||
showEphemeralMessage = request.showEphemeralMessage,
|
isKeyguardShowing = request.isKeyguardShowing,
|
||||||
falsingManager = falsingManager.get(),
|
showEphemeralMessage = request.showEphemeralMessage,
|
||||||
broadcastSender = broadcastSender.get(),
|
falsingManager = falsingManager.get(),
|
||||||
dialogLaunchAnimator = dialogLaunchAnimator.get(),
|
broadcastSender = broadcastSender.get(),
|
||||||
|
dialogLaunchAnimator = dialogLaunchAnimator.get(),
|
||||||
|
),
|
||||||
|
DialogCuj(
|
||||||
|
InteractionJankMonitor.CUJ_USER_DIALOG_OPEN,
|
||||||
|
INTERACTION_JANK_ADD_NEW_USER_TAG,
|
||||||
|
),
|
||||||
)
|
)
|
||||||
is ShowDialogRequestModel.ShowUserCreationDialog ->
|
is ShowDialogRequestModel.ShowUserCreationDialog ->
|
||||||
UserCreatingDialog(
|
Pair(
|
||||||
context.get(),
|
UserCreatingDialog(
|
||||||
request.isGuest,
|
context.get(),
|
||||||
|
request.isGuest,
|
||||||
|
),
|
||||||
|
null,
|
||||||
)
|
)
|
||||||
is ShowDialogRequestModel.ShowExitGuestDialog ->
|
is ShowDialogRequestModel.ShowExitGuestDialog ->
|
||||||
ExitGuestDialog(
|
Pair(
|
||||||
context = context.get(),
|
ExitGuestDialog(
|
||||||
guestUserId = request.guestUserId,
|
context = context.get(),
|
||||||
isGuestEphemeral = request.isGuestEphemeral,
|
guestUserId = request.guestUserId,
|
||||||
targetUserId = request.targetUserId,
|
isGuestEphemeral = request.isGuestEphemeral,
|
||||||
isKeyguardShowing = request.isKeyguardShowing,
|
targetUserId = request.targetUserId,
|
||||||
falsingManager = falsingManager.get(),
|
isKeyguardShowing = request.isKeyguardShowing,
|
||||||
dialogLaunchAnimator = dialogLaunchAnimator.get(),
|
falsingManager = falsingManager.get(),
|
||||||
onExitGuestUserListener = request.onExitGuestUser,
|
dialogLaunchAnimator = dialogLaunchAnimator.get(),
|
||||||
|
onExitGuestUserListener = request.onExitGuestUser,
|
||||||
|
),
|
||||||
|
DialogCuj(
|
||||||
|
InteractionJankMonitor.CUJ_USER_DIALOG_OPEN,
|
||||||
|
INTERACTION_JANK_EXIT_GUEST_MODE_TAG,
|
||||||
|
),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
currentDialog = dialog
|
||||||
|
|
||||||
|
if (request.dialogShower != null && dialogCuj != null) {
|
||||||
|
request.dialogShower?.showDialog(dialog, dialogCuj)
|
||||||
|
} else {
|
||||||
|
dialog.show()
|
||||||
|
}
|
||||||
|
|
||||||
currentDialog?.show()
|
|
||||||
interactor.get().onDialogShown()
|
interactor.get().onDialogShown()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -120,4 +143,9 @@ constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private const val INTERACTION_JANK_ADD_NEW_USER_TAG = "add_new_user"
|
||||||
|
private const val INTERACTION_JANK_EXIT_GUEST_MODE_TAG = "exit_guest_mode"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import androidx.test.filters.SmallTest
|
|||||||
import com.android.internal.R.drawable.ic_account_circle
|
import com.android.internal.R.drawable.ic_account_circle
|
||||||
import com.android.systemui.R
|
import com.android.systemui.R
|
||||||
import com.android.systemui.common.shared.model.Text
|
import com.android.systemui.common.shared.model.Text
|
||||||
|
import com.android.systemui.qs.user.UserSwitchDialogController
|
||||||
import com.android.systemui.user.data.model.UserSwitcherSettingsModel
|
import com.android.systemui.user.data.model.UserSwitcherSettingsModel
|
||||||
import com.android.systemui.user.data.source.UserRecord
|
import com.android.systemui.user.data.source.UserRecord
|
||||||
import com.android.systemui.user.domain.model.ShowDialogRequestModel
|
import com.android.systemui.user.domain.model.ShowDialogRequestModel
|
||||||
@@ -316,14 +317,16 @@ class UserInteractorRefactoredTest : UserInteractorTest() {
|
|||||||
keyguardRepository.setKeyguardShowing(false)
|
keyguardRepository.setKeyguardShowing(false)
|
||||||
var dialogRequest: ShowDialogRequestModel? = null
|
var dialogRequest: ShowDialogRequestModel? = null
|
||||||
val job = underTest.dialogShowRequests.onEach { dialogRequest = it }.launchIn(this)
|
val job = underTest.dialogShowRequests.onEach { dialogRequest = it }.launchIn(this)
|
||||||
|
val dialogShower: UserSwitchDialogController.DialogShower = mock()
|
||||||
|
|
||||||
underTest.executeAction(UserActionModel.ADD_USER)
|
underTest.executeAction(UserActionModel.ADD_USER, dialogShower)
|
||||||
assertThat(dialogRequest)
|
assertThat(dialogRequest)
|
||||||
.isEqualTo(
|
.isEqualTo(
|
||||||
ShowDialogRequestModel.ShowAddUserDialog(
|
ShowDialogRequestModel.ShowAddUserDialog(
|
||||||
userHandle = userInfos[0].userHandle,
|
userHandle = userInfos[0].userHandle,
|
||||||
isKeyguardShowing = false,
|
isKeyguardShowing = false,
|
||||||
showEphemeralMessage = false,
|
showEphemeralMessage = false,
|
||||||
|
dialogShower = dialogShower,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user