Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/BaseUserSwitcherAdapter.kt +4 −1 Original line number Diff line number Diff line Loading @@ -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)) Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.kt +3 −0 Original line number Diff line number Diff line Loading @@ -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 Loading packages/SystemUI/src/com/android/systemui/user/data/repository/UserRepository.kt +6 −0 Original line number Diff line number Diff line Loading @@ -105,6 +105,8 @@ interface UserRepository { fun getSelectedUserInfo(): UserInfo fun isSimpleUserSwitcher(): Boolean fun isUserSwitcherEnabled(): Boolean } @SysUISingleton Loading Loading @@ -206,6 +208,10 @@ constructor( return _userSwitcherSettings.value.isSimpleUserSwitcher } override fun isUserSwitcherEnabled(): Boolean { return _userSwitcherSettings.value.isUserSwitcherEnabled } private fun observeUserSwitching() { conflatedCallbackFlow { val callback = Loading packages/SystemUI/src/com/android/systemui/user/domain/interactor/UserInteractor.kt +5 −0 Original line number Diff line number Diff line Loading @@ -294,6 +294,10 @@ constructor( val isSimpleUserSwitcher: Boolean get() = repository.isSimpleUserSwitcher() val isUserSwitcherEnabled: Boolean get() = repository.isUserSwitcherEnabled() val keyguardUpdateMonitorCallback = object : KeyguardUpdateMonitorCallback() { override fun onKeyguardGoingAway() { Loading Loading @@ -370,6 +374,7 @@ constructor( } pw.println("isSimpleUserSwitcher=$isSimpleUserSwitcher") pw.println("isUserSwitcherEnabled=$isUserSwitcherEnabled") pw.println("isGuestUserAutoCreated=$isGuestUserAutoCreated") } Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BaseUserSwitcherAdapterTest.kt +14 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,7 @@ class BaseUserSwitcherAdapterTest : SysuiTestCase() { ) whenever(controller.users).thenAnswer { users } whenever(controller.isUserSwitcherEnabled).thenReturn(true) underTest = object : BaseUserSwitcherAdapter(controller) { Loading Loading @@ -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 Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/BaseUserSwitcherAdapter.kt +4 −1 Original line number Diff line number Diff line Loading @@ -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)) Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.kt +3 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
packages/SystemUI/src/com/android/systemui/user/data/repository/UserRepository.kt +6 −0 Original line number Diff line number Diff line Loading @@ -105,6 +105,8 @@ interface UserRepository { fun getSelectedUserInfo(): UserInfo fun isSimpleUserSwitcher(): Boolean fun isUserSwitcherEnabled(): Boolean } @SysUISingleton Loading Loading @@ -206,6 +208,10 @@ constructor( return _userSwitcherSettings.value.isSimpleUserSwitcher } override fun isUserSwitcherEnabled(): Boolean { return _userSwitcherSettings.value.isUserSwitcherEnabled } private fun observeUserSwitching() { conflatedCallbackFlow { val callback = Loading
packages/SystemUI/src/com/android/systemui/user/domain/interactor/UserInteractor.kt +5 −0 Original line number Diff line number Diff line Loading @@ -294,6 +294,10 @@ constructor( val isSimpleUserSwitcher: Boolean get() = repository.isSimpleUserSwitcher() val isUserSwitcherEnabled: Boolean get() = repository.isUserSwitcherEnabled() val keyguardUpdateMonitorCallback = object : KeyguardUpdateMonitorCallback() { override fun onKeyguardGoingAway() { Loading Loading @@ -370,6 +374,7 @@ constructor( } pw.println("isSimpleUserSwitcher=$isSimpleUserSwitcher") pw.println("isUserSwitcherEnabled=$isUserSwitcherEnabled") pw.println("isGuestUserAutoCreated=$isGuestUserAutoCreated") } Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BaseUserSwitcherAdapterTest.kt +14 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,7 @@ class BaseUserSwitcherAdapterTest : SysuiTestCase() { ) whenever(controller.users).thenAnswer { users } whenever(controller.isUserSwitcherEnabled).thenReturn(true) underTest = object : BaseUserSwitcherAdapter(controller) { Loading Loading @@ -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