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

Commit 6ca9a400 authored by Aaron Liu's avatar Aaron Liu
Browse files

[Bouncer] Remove duplicate manage users.

Remove a duplicate manage users menu item in the user switcher activity.

A manage users action was added further upstream for the data sources
with the new impl and old impl, therefore manually
adding the manage users action is not necessary for newimpl or oldimpl.
This was removed before, but there seemed to be a faulty merge conflict
resolution on my part.

Bug: 241811308, 254257455
Test: Observed 2 manage users in the User switchers before my change.
Observed 1 manage users action after my change.

Change-Id: I23efa9fedb6987e6427954662c07229767802bb8
parent 668aee06
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -321,6 +321,7 @@ constructor(
        return when {
            isAddUser -> false
            isAddSupervisedUser -> false
            isManageUsers -> false
            isGuest -> info != null
            else -> true
        }
@@ -346,6 +347,7 @@ constructor(
            isAddUser -> UserActionModel.ADD_USER
            isAddSupervisedUser -> UserActionModel.ADD_SUPERVISED_USER
            isGuest -> UserActionModel.ENTER_GUEST_MODE
            isManageUsers -> UserActionModel.NAVIGATE_TO_USER_MANAGEMENT
            else -> error("Don't know how to convert to UserActionModel: $this")
        }
    }
+1 −12
Original line number Diff line number Diff line
@@ -236,18 +236,7 @@ constructor(
                    }
                    .flatMapLatest { isActionable ->
                        if (isActionable) {
                            repository.actions.map { actions ->
                                actions +
                                    if (actions.isNotEmpty()) {
                                        // If we have actions, we add NAVIGATE_TO_USER_MANAGEMENT
                                        // because that's a user switcher specific action that is
                                        // not known to the our data source or other features.
                                        listOf(UserActionModel.NAVIGATE_TO_USER_MANAGEMENT)
                                    } else {
                                        // If no actions, don't add the navigate action.
                                        emptyList()
                                    }
                            }
                            repository.actions
                        } else {
                            // If not actionable it means that we're not allowed to show actions
                            // when
+1 −11
Original line number Diff line number Diff line
@@ -62,17 +62,7 @@ private constructor(
    val isMenuVisible: Flow<Boolean> = _isMenuVisible
    /** The user action menu. */
    val menu: Flow<List<UserActionViewModel>> =
        userInteractor.actions.map { actions ->
            if (isNewImpl && actions.isNotEmpty()) {
                    // If we have actions, we add NAVIGATE_TO_USER_MANAGEMENT because that's a user
                    // switcher specific action that is not known to the our data source or other
                    // features.
                    actions + listOf(UserActionModel.NAVIGATE_TO_USER_MANAGEMENT)
                } else {
                    actions
                }
                .map { action -> toViewModel(action) }
        }
        userInteractor.actions.map { actions -> actions.map { action -> toViewModel(action) } }

    /** Whether the button to open the user action menu is visible. */
    val isOpenMenuButtonVisible: Flow<Boolean> = menu.map { it.isNotEmpty() }
+5 −1
Original line number Diff line number Diff line
@@ -97,6 +97,7 @@ class UserRepositoryImplUnrefactoredTest : UserRepositoryImplTest() {
                        createUserRecord(2),
                        createActionRecord(UserActionModel.ADD_SUPERVISED_USER),
                        createActionRecord(UserActionModel.ENTER_GUEST_MODE),
                        createActionRecord(UserActionModel.NAVIGATE_TO_USER_MANAGEMENT),
                    )
                )
            var models: List<UserModel>? = null
@@ -176,15 +177,17 @@ class UserRepositoryImplUnrefactoredTest : UserRepositoryImplTest() {
                        createUserRecord(2),
                        createActionRecord(UserActionModel.ADD_SUPERVISED_USER),
                        createActionRecord(UserActionModel.ENTER_GUEST_MODE),
                        createActionRecord(UserActionModel.NAVIGATE_TO_USER_MANAGEMENT),
                    )
                )
            var models: List<UserActionModel>? = null
            val job = underTest.actions.onEach { models = it }.launchIn(this)

            assertThat(models).hasSize(3)
            assertThat(models).hasSize(4)
            assertThat(models?.get(0)).isEqualTo(UserActionModel.ADD_USER)
            assertThat(models?.get(1)).isEqualTo(UserActionModel.ADD_SUPERVISED_USER)
            assertThat(models?.get(2)).isEqualTo(UserActionModel.ENTER_GUEST_MODE)
            assertThat(models?.get(3)).isEqualTo(UserActionModel.NAVIGATE_TO_USER_MANAGEMENT)
            job.cancel()
        }

@@ -200,6 +203,7 @@ class UserRepositoryImplUnrefactoredTest : UserRepositoryImplTest() {
            isAddUser = action == UserActionModel.ADD_USER,
            isAddSupervisedUser = action == UserActionModel.ADD_SUPERVISED_USER,
            isGuest = action == UserActionModel.ENTER_GUEST_MODE,
            isManageUsers = action == UserActionModel.NAVIGATE_TO_USER_MANAGEMENT,
        )
    }
}
+7 −21
Original line number Diff line number Diff line
@@ -64,13 +64,7 @@ open class UserInteractorUnrefactoredTest : UserInteractorTest() {
    @Test
    fun `actions - not actionable when locked and not locked`() =
        runBlocking(IMMEDIATE) {
            userRepository.setActions(
                listOf(
                    UserActionModel.ENTER_GUEST_MODE,
                    UserActionModel.ADD_USER,
                    UserActionModel.ADD_SUPERVISED_USER,
                )
            )
            setActions()
            userRepository.setActionableWhenLocked(false)
            keyguardRepository.setKeyguardShowing(false)

@@ -92,13 +86,7 @@ open class UserInteractorUnrefactoredTest : UserInteractorTest() {
    @Test
    fun `actions - actionable when locked and not locked`() =
        runBlocking(IMMEDIATE) {
            userRepository.setActions(
                listOf(
                    UserActionModel.ENTER_GUEST_MODE,
                    UserActionModel.ADD_USER,
                    UserActionModel.ADD_SUPERVISED_USER,
                )
            )
            setActions()
            userRepository.setActionableWhenLocked(true)
            keyguardRepository.setKeyguardShowing(false)

@@ -120,13 +108,7 @@ open class UserInteractorUnrefactoredTest : UserInteractorTest() {
    @Test
    fun `actions - actionable when locked and locked`() =
        runBlocking(IMMEDIATE) {
            userRepository.setActions(
                listOf(
                    UserActionModel.ENTER_GUEST_MODE,
                    UserActionModel.ADD_USER,
                    UserActionModel.ADD_SUPERVISED_USER,
                )
            )
            setActions()
            userRepository.setActionableWhenLocked(true)
            keyguardRepository.setKeyguardShowing(true)

@@ -182,6 +164,10 @@ open class UserInteractorUnrefactoredTest : UserInteractorTest() {
        verify(activityStarter).startActivity(any(), anyBoolean())
    }

    private fun setActions() {
        userRepository.setActions(UserActionModel.values().toList())
    }

    companion object {
        private val IMMEDIATE = Dispatchers.Main.immediate
    }
Loading