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

Commit 8b0ac8fc authored by Ben Murdoch's avatar Ben Murdoch
Browse files

Fix crashes in UserDetailViewAdapterTest.

ag/12048551 exposed some issues running these tests with mocks.

1. Once UserDetailItemView was created from the mocked convertView, it
   returned null from getResources. Fix by calling getResources through
   Context instead.
2. CircleFramedDrawable needs a real bitmap to work. Using a mock ended
   up in a native crash somewhere in libhwui.

Bug: 160794744
Test: atest UserDetailViewAdapterTest
Change-Id: I85a84dbd454ebb1627e4ded21e6708c7fedac11c
parent 1c2a704f
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -100,7 +100,8 @@ public class UserDetailView extends PseudoGridView {
            if (item.picture == null) {
                v.bind(name, getDrawable(mContext, item).mutate(), item.resolveId());
            } else {
                int avatarSize = (int) v.getResources().getDimension(R.dimen.qs_framed_avatar_size);
                int avatarSize =
                        (int) mContext.getResources().getDimension(R.dimen.qs_framed_avatar_size);
                Drawable drawable = new CircleFramedDrawable(item.picture, avatarSize);
                drawable.setColorFilter(
                        item.isSwitchToEnabled ? null : getDisabledUserAvatarColorFilter());
+2 −1
Original line number Diff line number Diff line
@@ -288,7 +288,8 @@ public class KeyguardUserSwitcher {
            if (item.picture == null) {
                v.bind(name, getDrawable(mContext, item).mutate(), item.resolveId());
            } else {
                int avatarSize = (int) v.getResources().getDimension(R.dimen.kg_framed_avatar_size);
                int avatarSize =
                        (int) mContext.getResources().getDimension(R.dimen.kg_framed_avatar_size);
                Drawable drawable = new CircleFramedDrawable(item.picture, avatarSize);
                drawable.setColorFilter(
                        item.isSwitchToEnabled ? null : getDisabledUserAvatarColorFilter());
+5 −2
Original line number Diff line number Diff line
@@ -25,6 +25,8 @@ import android.view.View
import android.view.ViewGroup
import androidx.test.filters.SmallTest
import com.android.internal.logging.testing.UiEventLoggerFake
import com.android.internal.util.UserIcons
import com.android.systemui.R
import com.android.systemui.SysuiTestCase
import com.android.systemui.qs.QSUserSwitcherEvent
import com.android.systemui.statusbar.policy.UserSwitcherController
@@ -50,10 +52,10 @@ class UserDetailViewAdapterTest : SysuiTestCase() {
    @Mock private lateinit var mOtherView: View
    @Mock private lateinit var mInflatedUserDetailItemView: UserDetailItemView
    @Mock private lateinit var mUserInfo: UserInfo
    @Mock private lateinit var mPicture: Bitmap
    @Mock private lateinit var mLayoutInflater: LayoutInflater
    private lateinit var adapter: UserDetailView.Adapter
    private lateinit var uiEventLogger: UiEventLoggerFake
    private lateinit var mPicture: Bitmap

    @Before
    fun setUp() {
@@ -64,6 +66,7 @@ class UserDetailViewAdapterTest : SysuiTestCase() {
        `when`(mLayoutInflater.inflate(anyInt(), any(ViewGroup::class.java), anyBoolean()))
                .thenReturn(mInflatedUserDetailItemView)
        adapter = UserDetailView.Adapter(mContext, mUserSwitcherController, uiEventLogger)
        mPicture = UserIcons.convertToBitmap(mContext.getDrawable(R.drawable.ic_avatar_user))
    }

    private fun clickableTest(