Merge "[User Switcher] filter for only full userinfos." into tm-qpr-dev
This commit is contained in:
@@ -117,7 +117,7 @@ constructor(
|
||||
private val callbacks = mutableSetOf<UserCallback>()
|
||||
private val userInfos =
|
||||
combine(repository.userSwitcherSettings, repository.userInfos) { settings, userInfos ->
|
||||
userInfos.filter { !it.isGuest || canCreateGuestUser(settings) }
|
||||
userInfos.filter { !it.isGuest || canCreateGuestUser(settings) }.filter { it.isFull }
|
||||
}
|
||||
|
||||
/** List of current on-device users to select from. */
|
||||
|
||||
@@ -771,6 +771,28 @@ class UserInteractorTest : SysuiTestCase() {
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `users - secondary user - managed profile is not included`() =
|
||||
runBlocking(IMMEDIATE) {
|
||||
var userInfos = createUserInfos(count = 3, includeGuest = false).toMutableList()
|
||||
userInfos.add(
|
||||
UserInfo(
|
||||
50,
|
||||
"Work Profile",
|
||||
/* iconPath= */ "",
|
||||
/* flags= */ UserInfo.FLAG_MANAGED_PROFILE
|
||||
)
|
||||
)
|
||||
userRepository.setUserInfos(userInfos)
|
||||
userRepository.setSelectedUserInfo(userInfos[1])
|
||||
userRepository.setSettings(UserSwitcherSettingsModel(isUserSwitcherEnabled = true))
|
||||
|
||||
var res: List<UserModel>? = null
|
||||
val job = underTest.users.onEach { res = it }.launchIn(this)
|
||||
assertThat(res?.size == 3).isTrue()
|
||||
job.cancel()
|
||||
}
|
||||
|
||||
private fun assertUsers(
|
||||
models: List<UserModel>?,
|
||||
count: Int,
|
||||
@@ -893,9 +915,9 @@ class UserInteractorTest : SysuiTestCase() {
|
||||
name,
|
||||
/* iconPath= */ "",
|
||||
/* flags= */ if (isPrimary) {
|
||||
UserInfo.FLAG_PRIMARY or UserInfo.FLAG_ADMIN
|
||||
UserInfo.FLAG_PRIMARY or UserInfo.FLAG_ADMIN or UserInfo.FLAG_FULL
|
||||
} else {
|
||||
0
|
||||
UserInfo.FLAG_FULL
|
||||
},
|
||||
if (isGuest) {
|
||||
UserManager.USER_TYPE_FULL_GUEST
|
||||
|
||||
@@ -281,7 +281,7 @@ class StatusBarUserChipViewModelTest : SysuiTestCase() {
|
||||
USER_ID_0,
|
||||
USER_NAME_0.text!!,
|
||||
/* iconPath */ "",
|
||||
/* flags */ 0,
|
||||
/* flags */ UserInfo.FLAG_FULL,
|
||||
/* userType */ UserManager.USER_TYPE_FULL_SYSTEM
|
||||
)
|
||||
|
||||
@@ -290,7 +290,7 @@ class StatusBarUserChipViewModelTest : SysuiTestCase() {
|
||||
USER_ID_1,
|
||||
USER_NAME_1.text!!,
|
||||
/* iconPath */ "",
|
||||
/* flags */ 0,
|
||||
/* flags */ UserInfo.FLAG_FULL,
|
||||
/* userType */ UserManager.USER_TYPE_FULL_SYSTEM
|
||||
)
|
||||
|
||||
@@ -299,7 +299,7 @@ class StatusBarUserChipViewModelTest : SysuiTestCase() {
|
||||
USER_ID_2,
|
||||
USER_NAME_2.text!!,
|
||||
/* iconPath */ "",
|
||||
/* flags */ 0,
|
||||
/* flags */ UserInfo.FLAG_FULL,
|
||||
/* userType */ UserManager.USER_TYPE_FULL_SYSTEM
|
||||
)
|
||||
}
|
||||
|
||||
@@ -178,21 +178,21 @@ class UserSwitcherViewModelTest : SysuiTestCase() {
|
||||
/* id= */ 0,
|
||||
/* name= */ "zero",
|
||||
/* iconPath= */ "",
|
||||
/* flags= */ UserInfo.FLAG_PRIMARY or UserInfo.FLAG_ADMIN,
|
||||
/* flags= */ UserInfo.FLAG_PRIMARY or UserInfo.FLAG_ADMIN or UserInfo.FLAG_FULL,
|
||||
UserManager.USER_TYPE_FULL_SYSTEM,
|
||||
),
|
||||
UserInfo(
|
||||
/* id= */ 1,
|
||||
/* name= */ "one",
|
||||
/* iconPath= */ "",
|
||||
/* flags= */ 0,
|
||||
/* flags= */ UserInfo.FLAG_FULL,
|
||||
UserManager.USER_TYPE_FULL_SYSTEM,
|
||||
),
|
||||
UserInfo(
|
||||
/* id= */ 2,
|
||||
/* name= */ "two",
|
||||
/* iconPath= */ "",
|
||||
/* flags= */ 0,
|
||||
/* flags= */ UserInfo.FLAG_FULL,
|
||||
UserManager.USER_TYPE_FULL_SYSTEM,
|
||||
),
|
||||
)
|
||||
@@ -361,10 +361,10 @@ class UserSwitcherViewModelTest : SysuiTestCase() {
|
||||
/* iconPath= */ "",
|
||||
/* flags= */ if (index == 0) {
|
||||
// This is the primary user.
|
||||
UserInfo.FLAG_PRIMARY or UserInfo.FLAG_ADMIN
|
||||
UserInfo.FLAG_PRIMARY or UserInfo.FLAG_ADMIN or UserInfo.FLAG_FULL
|
||||
} else {
|
||||
// This isn't the primary user.
|
||||
0
|
||||
UserInfo.FLAG_FULL
|
||||
},
|
||||
UserManager.USER_TYPE_FULL_SYSTEM,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user