Merge "Guest user is last." into tm-qpr-dev am: 3c9b6ecfe2

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20238594

Change-Id: I53a0ed1f62b7c2ea707a2acdf779ac6de735480a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Ale Nijamkin
2022-10-21 19:19:41 +00:00
committed by Automerger Merge Worker
2 changed files with 20 additions and 11 deletions

View File

@@ -220,7 +220,12 @@ constructor(
val result = withContext(backgroundDispatcher) { manager.aliveUsers }
if (result != null) {
_userInfos.value = result.sortedBy { it.creationTime }
_userInfos.value =
result
// Users should be sorted by ascending creation time.
.sortedBy { it.creationTime }
// The guest user is always last, regardless of creation time.
.sortedBy { it.isGuest }
}
}
}

View File

@@ -110,7 +110,7 @@ class UserRepositoryImplRefactoredTest : UserRepositoryImplTest() {
val thirdExpectedValue =
setUpUsers(
count = 2,
hasGuest = true,
isLastGuestUser = true,
selectedIndex = 1,
)
underTest.refreshUsers()
@@ -121,21 +121,25 @@ class UserRepositoryImplRefactoredTest : UserRepositoryImplTest() {
}
@Test
fun `refreshUsers - sorts by creation time`() = runSelfCancelingTest {
fun `refreshUsers - sorts by creation time - guest user last`() = runSelfCancelingTest {
underTest = create(this)
val unsortedUsers =
setUpUsers(
count = 3,
selectedIndex = 0,
isLastGuestUser = true,
)
unsortedUsers[0].creationTime = 999
unsortedUsers[1].creationTime = 900
unsortedUsers[2].creationTime = 950
val expectedUsers =
listOf(
unsortedUsers[1],
unsortedUsers[0],
unsortedUsers[2], // last because this is the guest
)
unsortedUsers[0].creationTime = 900
unsortedUsers[1].creationTime = 700
unsortedUsers[2].creationTime = 999
val expectedUsers = listOf(unsortedUsers[1], unsortedUsers[0], unsortedUsers[2])
var userInfos: List<UserInfo>? = null
var selectedUserInfo: UserInfo? = null
underTest.userInfos.onEach { userInfos = it }.launchIn(this)
underTest.selectedUserInfo.onEach { selectedUserInfo = it }.launchIn(this)
underTest.refreshUsers()
assertThat(userInfos).isEqualTo(expectedUsers)
@@ -143,14 +147,14 @@ class UserRepositoryImplRefactoredTest : UserRepositoryImplTest() {
private fun setUpUsers(
count: Int,
hasGuest: Boolean = false,
isLastGuestUser: Boolean = false,
selectedIndex: Int = 0,
): List<UserInfo> {
val userInfos =
(0 until count).map { index ->
createUserInfo(
index,
isGuest = hasGuest && index == count - 1,
isGuest = isLastGuestUser && index == count - 1,
)
}
whenever(manager.aliveUsers).thenReturn(userInfos)