Merge "[User Switcher] dismiss dialog appropriately." into tm-qpr-dev
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ protected constructor(
|
||||
* animation to and from the parent dialog.
|
||||
*/
|
||||
@JvmOverloads
|
||||
fun onUserListItemClicked(
|
||||
open fun onUserListItemClicked(
|
||||
record: UserRecord,
|
||||
dialogShower: DialogShower? = null,
|
||||
) {
|
||||
|
||||
@@ -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
|
||||
@@ -67,10 +75,12 @@ class UserDetailViewAdapterTest : SysuiTestCase() {
|
||||
|
||||
mContext.addMockSystemService(Context.LAYOUT_INFLATER_SERVICE, mLayoutInflater)
|
||||
`when`(mLayoutInflater.inflate(anyInt(), any(ViewGroup::class.java), anyBoolean()))
|
||||
.thenReturn(mInflatedUserDetailItemView)
|
||||
.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 */),
|
||||
|
||||
Reference in New Issue
Block a user