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

Commit decd480f authored by Brad Hinegardner's avatar Brad Hinegardner Committed by Automerger Merge Worker
Browse files

Merge "Don't allow users to be switched on keyguard when multiple users is...

Merge "Don't allow users to be switched on keyguard when multiple users is disabled" into udc-dev am: aa792b8d

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



Change-Id: Ibb5cbaf034b9108ea750af644bd34383e38e71e6
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents fa9c23b7 aa792b8d
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -35,7 +35,10 @@ protected constructor(
) : BaseAdapter() {

    protected open val users: List<UserRecord>
        get() = controller.users.filter { !controller.isKeyguardShowing || !it.isRestricted }
        get() = controller.users.filter {
            (!controller.isKeyguardShowing || !it.isRestricted) &&
                (controller.isUserSwitcherEnabled || it.isCurrent)
        }

    init {
        controller.addAdapter(WeakReference(this))
+3 −0
Original line number Diff line number Diff line
@@ -67,6 +67,9 @@ constructor(
    val isSimpleUserSwitcher: Boolean
        get() = userInteractor.isSimpleUserSwitcher

    val isUserSwitcherEnabled: Boolean
        get() = userInteractor.isUserSwitcherEnabled

    /** The [UserRecord] of the current user or `null` when none. */
    val currentUserRecord: UserRecord?
        get() = userInteractor.selectedUserRecord.value
+6 −0
Original line number Diff line number Diff line
@@ -105,6 +105,8 @@ interface UserRepository {
    fun getSelectedUserInfo(): UserInfo

    fun isSimpleUserSwitcher(): Boolean

    fun isUserSwitcherEnabled(): Boolean
}

@SysUISingleton
@@ -206,6 +208,10 @@ constructor(
        return _userSwitcherSettings.value.isSimpleUserSwitcher
    }

    override fun isUserSwitcherEnabled(): Boolean {
        return _userSwitcherSettings.value.isUserSwitcherEnabled
    }

    private fun observeUserSwitching() {
        conflatedCallbackFlow {
                val callback =
+5 −0
Original line number Diff line number Diff line
@@ -294,6 +294,10 @@ constructor(

    val isSimpleUserSwitcher: Boolean
        get() = repository.isSimpleUserSwitcher()

    val isUserSwitcherEnabled: Boolean
        get() = repository.isUserSwitcherEnabled()

    val keyguardUpdateMonitorCallback =
        object : KeyguardUpdateMonitorCallback() {
            override fun onKeyguardGoingAway() {
@@ -370,6 +374,7 @@ constructor(
        }

        pw.println("isSimpleUserSwitcher=$isSimpleUserSwitcher")
        pw.println("isUserSwitcherEnabled=$isUserSwitcherEnabled")
        pw.println("isGuestUserAutoCreated=$isGuestUserAutoCreated")
    }

+14 −0
Original line number Diff line number Diff line
@@ -77,6 +77,7 @@ class BaseUserSwitcherAdapterTest : SysuiTestCase() {
            )

        whenever(controller.users).thenAnswer { users }
        whenever(controller.isUserSwitcherEnabled).thenReturn(true)

        underTest =
            object : BaseUserSwitcherAdapter(controller) {
@@ -161,6 +162,19 @@ class BaseUserSwitcherAdapterTest : SysuiTestCase() {
        assertThat(underTest.count).isEqualTo(users.size)
    }

    @Test
    fun count_onlyShowsCurrentUserWhenMultiUserDisabled() {
        whenever(controller.isUserSwitcherEnabled).thenReturn(false)
        assertThat(underTest.count).isEqualTo(1)
        assertThat(underTest.getItem(0).isCurrent).isTrue()
    }

    @Test
    fun count_doesNotIgnoreAllOtherUsersWhenMultiUserEnabled() {
        whenever(controller.isUserSwitcherEnabled).thenReturn(true)
        assertThat(underTest.count).isEqualTo(users.size)
    }

    @Test
    fun getItem() {
        assertThat((0 until underTest.count).map { position -> underTest.getItem(position) })
Loading