Set the mAccountName as null while device has no any account

It doesn't clean the mAccountName buffer while device has no any account. And it will be put into
the Intent and pass to MeCard when user click the ghost boy avatar. It does not make sense and
modify code to fixed it.

Fixes: 129265427
Test: make RunSettingsRoboTests -j56 ROBOTEST_FILTER=com.android.settings.accounts
      make RunSettingsRoboTests -j56 ROBOTEST_FILTER=com.android.settings.core
      make RunSettingsRoboTests -j56 ROBOTEST_FILTER=com.android.settings.dashboard

Change-Id: Ib8cfab2cb416515018f335b21ef49a95699a1597
This commit is contained in:
Sunny Shao
2019-06-04 14:11:40 +08:00
parent 29e482e236
commit 2c6d308ecb
2 changed files with 14 additions and 1 deletions

View File

@@ -67,7 +67,8 @@ public class AvatarViewMixin implements LifecycleObserver {
private final MutableLiveData<Bitmap> mAvatarImage; private final MutableLiveData<Bitmap> mAvatarImage;
private final ActivityManager mActivityManager; private final ActivityManager mActivityManager;
private String mAccountName; @VisibleForTesting
String mAccountName;
public AvatarViewMixin(SettingsHomepageActivity activity, ImageView avatarView) { public AvatarViewMixin(SettingsHomepageActivity activity, ImageView avatarView) {
mContext = activity.getApplicationContext(); mContext = activity.getApplicationContext();
@@ -127,6 +128,7 @@ public class AvatarViewMixin implements LifecycleObserver {
if (hasAccount()) { if (hasAccount()) {
loadAccount(); loadAccount();
} else { } else {
mAccountName = null;
mAvatarView.setImageResource(R.drawable.ic_account_circle_24dp); mAvatarView.setImageResource(R.drawable.ic_account_circle_24dp);
} }
} }

View File

@@ -130,6 +130,17 @@ public class AvatarViewMixinTest {
verify(mockAvatar).hasAccount(); verify(mockAvatar).hasAccount();
} }
@Test
@Config(qualifiers = "mcc999")
public void onStart_noAccount_mAccountNameShouldBeNull() {
final AvatarViewMixin avatarViewMixin = new AvatarViewMixin(mActivity, mImageView);
avatarViewMixin.mAccountName = DUMMY_ACCOUNT;
avatarViewMixin.onStart();
assertThat(avatarViewMixin.mAccountName).isNull();
}
@Test @Test
public void queryProviderAuthority_useShadowPackagteManager_returnNull() { public void queryProviderAuthority_useShadowPackagteManager_returnNull() {
final AvatarViewMixin avatarViewMixin = new AvatarViewMixin(mActivity, mImageView); final AvatarViewMixin avatarViewMixin = new AvatarViewMixin(mActivity, mImageView);