Merge "Add NPE check for refreshUi" into oc-dev

am: 1a8c2dd899

Change-Id: I1daa1c18a7a938c1e6528aaeda2a3a874b2fe028
This commit is contained in:
Lei Yu
2017-05-25 20:07:20 +00:00
committed by android-build-merger
2 changed files with 17 additions and 5 deletions

View File

@@ -98,6 +98,8 @@ public class AppButtonsPreferenceController extends PreferenceController impleme
@VisibleForTesting
Button mUninstallButton;
@VisibleForTesting
String mPackageName;
@VisibleForTesting
boolean mDisableAfterUninstall = false;
private final int mRequestUninstall;
@@ -113,7 +115,6 @@ public class AppButtonsPreferenceController extends PreferenceController impleme
private MetricsFeatureProvider mMetricsFeatureProvider;
private LayoutPreference mButtonsPref;
private String mPackageName;
private int mUserId;
private boolean mUpdatedSysApp = false;
private boolean mListeningToPackageRemove = false;
@@ -134,7 +135,6 @@ public class AppButtonsPreferenceController extends PreferenceController impleme
mMetricsFeatureProvider = FeatureFactory.getFactory(activity).getMetricsFeatureProvider();
mState = state;
mSession = mState.newSession(this);
mDpm = dpm;
mUserManager = userManager;
mPm = packageManager;
@@ -145,10 +145,10 @@ public class AppButtonsPreferenceController extends PreferenceController impleme
mRequestUninstall = requestUninstall;
mRequestRemoveDeviceAdmin = requestRemoveDeviceAdmin;
lifecycle.addObserver(this);
if (packageName != null) {
mAppEntry = mState.getEntry(packageName, mUserId);
mSession = mState.newSession(this);
lifecycle.addObserver(this);
} else {
mFinishing = true;
}
@@ -620,7 +620,11 @@ public class AppButtonsPreferenceController extends PreferenceController impleme
return false;
}
private boolean refreshUi() {
@VisibleForTesting
boolean refreshUi() {
if (mPackageName == null) {
return false;
}
retrieveAppEntry();
if (mAppEntry == null || mPackageInfo == null) {
return false;

View File

@@ -344,6 +344,14 @@ public class AppButtonsPreferenceControllerTest {
assertThat(controllable).isTrue();
}
@Test
public void testRefreshUi_packageNull_shouldNotCrash() {
mController.mPackageName = null;
// Should not crash in this method
assertThat(mController.refreshUi()).isFalse();
}
/**
* The test fragment which implements
* {@link ButtonActionDialogFragment.AppButtonsDialogListener}