Fix NPE in accountPrefController
Change-Id: I83dba35604c501780fa9a99d122b9d9bc8068661 Fix: 34193417 Test: RunSettingsRoboTests
This commit is contained in:
@@ -311,7 +311,10 @@ public class AccountPreferenceController extends PreferenceController
|
|||||||
preferenceGroup.setContentDescription(
|
preferenceGroup.setContentDescription(
|
||||||
mContext.getString(R.string.accessibility_category_personal));
|
mContext.getString(R.string.accessibility_category_personal));
|
||||||
}
|
}
|
||||||
mParent.getPreferenceScreen().addPreference(preferenceGroup);
|
final PreferenceScreen screen = mParent.getPreferenceScreen();
|
||||||
|
if (screen != null) {
|
||||||
|
screen.addPreference(preferenceGroup);
|
||||||
|
}
|
||||||
profileData.preferenceGroup = preferenceGroup;
|
profileData.preferenceGroup = preferenceGroup;
|
||||||
if (userInfo.isEnabled()) {
|
if (userInfo.isEnabled()) {
|
||||||
profileData.authenticatorHelper = new AuthenticatorHelper(context,
|
profileData.authenticatorHelper = new AuthenticatorHelper(context,
|
||||||
@@ -367,6 +370,9 @@ public class AccountPreferenceController extends PreferenceController
|
|||||||
|
|
||||||
void cleanUpPreferences() {
|
void cleanUpPreferences() {
|
||||||
PreferenceScreen screen = mParent.getPreferenceScreen();
|
PreferenceScreen screen = mParent.getPreferenceScreen();
|
||||||
|
if (screen == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
for (int i = 0; i < mProfiles.size(); i++) {
|
for (int i = 0; i < mProfiles.size(); i++) {
|
||||||
final PreferenceGroup preferenceGroup = mProfiles.valueAt(i).preferenceGroup;
|
final PreferenceGroup preferenceGroup = mProfiles.valueAt(i).preferenceGroup;
|
||||||
screen.removePreference(preferenceGroup);
|
screen.removePreference(preferenceGroup);
|
||||||
|
@@ -189,6 +189,24 @@ public class AccountPreferenceControllerTest {
|
|||||||
verify(mScreen, times(2)).removePreference(preferenceGroup);
|
verify(mScreen, times(2)).removePreference(preferenceGroup);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class})
|
||||||
|
public void onResume_noPreferenceScreen_shouldNotCrash() {
|
||||||
|
final List<UserInfo> infos = new ArrayList<>();
|
||||||
|
infos.add(new UserInfo(1, "user 1", 0));
|
||||||
|
when(mUserManager.isManagedProfile()).thenReturn(false);
|
||||||
|
when(mUserManager.isLinkedUser()).thenReturn(false);
|
||||||
|
when(mUserManager.getProfiles(anyInt())).thenReturn(infos);
|
||||||
|
|
||||||
|
AccessiblePreferenceCategory preferenceGroup = mock(AccessiblePreferenceCategory.class);
|
||||||
|
when(mAccountHelper.createAccessiblePreferenceCategory(any(Context.class))).thenReturn(
|
||||||
|
preferenceGroup);
|
||||||
|
|
||||||
|
mController.onResume();
|
||||||
|
|
||||||
|
// Should not crash
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void updateRawDataToIndex_ManagedProfile_shouldNotUpdate() {
|
public void updateRawDataToIndex_ManagedProfile_shouldNotUpdate() {
|
||||||
final List<SearchIndexableRaw> data = new ArrayList<>();
|
final List<SearchIndexableRaw> data = new ArrayList<>();
|
||||||
|
Reference in New Issue
Block a user