Merge "Add NPE check for refreshUi" into oc-dev
diff --git a/src/com/android/settings/fuelgauge/AppButtonsPreferenceController.java b/src/com/android/settings/fuelgauge/AppButtonsPreferenceController.java
index 49a0179..89f03b3 100644
--- a/src/com/android/settings/fuelgauge/AppButtonsPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/AppButtonsPreferenceController.java
@@ -98,6 +98,8 @@
@VisibleForTesting
Button mUninstallButton;
@VisibleForTesting
+ String mPackageName;
+ @VisibleForTesting
boolean mDisableAfterUninstall = false;
private final int mRequestUninstall;
@@ -113,7 +115,6 @@
private MetricsFeatureProvider mMetricsFeatureProvider;
private LayoutPreference mButtonsPref;
- private String mPackageName;
private int mUserId;
private boolean mUpdatedSysApp = false;
private boolean mListeningToPackageRemove = false;
@@ -134,7 +135,6 @@
mMetricsFeatureProvider = FeatureFactory.getFactory(activity).getMetricsFeatureProvider();
mState = state;
- mSession = mState.newSession(this);
mDpm = dpm;
mUserManager = userManager;
mPm = packageManager;
@@ -145,10 +145,10 @@
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 @@
return false;
}
- private boolean refreshUi() {
+ @VisibleForTesting
+ boolean refreshUi() {
+ if (mPackageName == null) {
+ return false;
+ }
retrieveAppEntry();
if (mAppEntry == null || mPackageInfo == null) {
return false;
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AppButtonsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/AppButtonsPreferenceControllerTest.java
index a341d83..b40cb9e 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/AppButtonsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/AppButtonsPreferenceControllerTest.java
@@ -344,6 +344,14 @@
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}