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

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

Merge "[User Switcher] dismiss dialog appropriately." into tm-qpr-dev

parents ac6d6164 20aec82f
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -204,6 +204,15 @@ public class UserDetailView extends PseudoGridView {
            Trace.endSection();
        }

        @Override
        public void onUserListItemClicked(@NonNull UserRecord record,
                @Nullable UserSwitchDialogController.DialogShower dialogShower) {
            if (dialogShower != null) {
                mDialogShower.dismiss();
            }
            super.onUserListItemClicked(record, dialogShower);
        }

        public void linkToViewGroup(ViewGroup viewGroup) {
            PseudoGridView.ViewGroupAdapterBridge.link(viewGroup, this);
        }
+1 −1
Original line number Diff line number Diff line
@@ -61,7 +61,7 @@ protected constructor(
     * animation to and from the parent dialog.
     */
    @JvmOverloads
    fun onUserListItemClicked(
    open fun onUserListItemClicked(
        record: UserRecord,
        dialogShower: DialogShower? = null,
    ) {
+29 −10
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import com.android.systemui.R
import com.android.systemui.SysuiTestCase
import com.android.systemui.classifier.FalsingManagerFake
import com.android.systemui.qs.QSUserSwitcherEvent
import com.android.systemui.qs.user.UserSwitchDialogController
import com.android.systemui.statusbar.policy.UserSwitcherController
import com.android.systemui.user.data.source.UserRecord
import org.junit.Assert.assertEquals
@@ -41,20 +42,27 @@ import org.mockito.ArgumentMatchers.any
import org.mockito.ArgumentMatchers.anyBoolean
import org.mockito.ArgumentMatchers.anyInt
import org.mockito.Mock
import org.mockito.Mockito.verify
import org.mockito.Mockito.`when`
import org.mockito.Mockito.mock
import org.mockito.Mockito.verify
import org.mockito.MockitoAnnotations

@RunWith(AndroidTestingRunner::class)
@SmallTest
class UserDetailViewAdapterTest : SysuiTestCase() {

    @Mock private lateinit var mUserSwitcherController: UserSwitcherController
    @Mock private lateinit var mParent: ViewGroup
    @Mock private lateinit var mUserDetailItemView: UserDetailItemView
    @Mock private lateinit var mOtherView: View
    @Mock private lateinit var mInflatedUserDetailItemView: UserDetailItemView
    @Mock private lateinit var mLayoutInflater: LayoutInflater
    @Mock
    private lateinit var mUserSwitcherController: UserSwitcherController
    @Mock
    private lateinit var mParent: ViewGroup
    @Mock
    private lateinit var mUserDetailItemView: UserDetailItemView
    @Mock
    private lateinit var mOtherView: View
    @Mock
    private lateinit var mInflatedUserDetailItemView: UserDetailItemView
    @Mock
    private lateinit var mLayoutInflater: LayoutInflater
    private var falsingManagerFake: FalsingManagerFake = FalsingManagerFake()
    private lateinit var adapter: UserDetailView.Adapter
    private lateinit var uiEventLogger: UiEventLoggerFake
@@ -69,8 +77,10 @@ class UserDetailViewAdapterTest : SysuiTestCase() {
        `when`(mLayoutInflater.inflate(anyInt(), any(ViewGroup::class.java), anyBoolean()))
            .thenReturn(mInflatedUserDetailItemView)
        `when`(mParent.context).thenReturn(mContext)
        adapter = UserDetailView.Adapter(mContext, mUserSwitcherController, uiEventLogger,
                falsingManagerFake)
        adapter = UserDetailView.Adapter(
            mContext, mUserSwitcherController, uiEventLogger,
            falsingManagerFake
        )
        mPicture = UserIcons.convertToBitmap(mContext.getDrawable(R.drawable.ic_avatar_user))
    }

@@ -145,6 +155,15 @@ class UserDetailViewAdapterTest : SysuiTestCase() {
        assertNull(adapter.users.find { it.isManageUsers })
    }

    @Test
    fun clickDismissDialog() {
        val shower: UserSwitchDialogController.DialogShower =
            mock(UserSwitchDialogController.DialogShower::class.java)
        adapter.injectDialogShower(shower)
        adapter.onUserListItemClicked(createUserRecord(current = true, guest = false), shower)
        verify(shower).dismiss()
    }

    private fun createUserRecord(current: Boolean, guest: Boolean) =
        UserRecord(
            UserInfo(0 /* id */, "name", 0 /* flags */),