Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bef5efa8 authored by Aaron Liu's avatar Aaron Liu Committed by Android (Google) Code Review
Browse files

Merge "[User Switcher] filter for only full userinfos." into tm-qpr-dev

parents b0614930 d95b1b0f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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. */
+24 −2
Original line number Diff line number Diff line
@@ -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
+3 −3
Original line number Diff line number Diff line
@@ -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
            )
    }
+5 −5
Original line number Diff line number Diff line
@@ -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,
                )