Merge "Add NPE check for refreshUi" into oc-dev am: 1a8c2dd899

am: 9e56dd44cd

Change-Id: Id487b717c57c211f9a80f584bd518b6b5267d480
This commit is contained in:
Lei Yu
2017-05-25 20:21:19 +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 @VisibleForTesting
Button mUninstallButton; Button mUninstallButton;
@VisibleForTesting @VisibleForTesting
String mPackageName;
@VisibleForTesting
boolean mDisableAfterUninstall = false; boolean mDisableAfterUninstall = false;
private final int mRequestUninstall; private final int mRequestUninstall;
@@ -113,7 +115,6 @@ public class AppButtonsPreferenceController extends PreferenceController impleme
private MetricsFeatureProvider mMetricsFeatureProvider; private MetricsFeatureProvider mMetricsFeatureProvider;
private LayoutPreference mButtonsPref; private LayoutPreference mButtonsPref;
private String mPackageName;
private int mUserId; private int mUserId;
private boolean mUpdatedSysApp = false; private boolean mUpdatedSysApp = false;
private boolean mListeningToPackageRemove = false; private boolean mListeningToPackageRemove = false;
@@ -134,7 +135,6 @@ public class AppButtonsPreferenceController extends PreferenceController impleme
mMetricsFeatureProvider = FeatureFactory.getFactory(activity).getMetricsFeatureProvider(); mMetricsFeatureProvider = FeatureFactory.getFactory(activity).getMetricsFeatureProvider();
mState = state; mState = state;
mSession = mState.newSession(this);
mDpm = dpm; mDpm = dpm;
mUserManager = userManager; mUserManager = userManager;
mPm = packageManager; mPm = packageManager;
@@ -145,10 +145,10 @@ public class AppButtonsPreferenceController extends PreferenceController impleme
mRequestUninstall = requestUninstall; mRequestUninstall = requestUninstall;
mRequestRemoveDeviceAdmin = requestRemoveDeviceAdmin; mRequestRemoveDeviceAdmin = requestRemoveDeviceAdmin;
lifecycle.addObserver(this);
if (packageName != null) { if (packageName != null) {
mAppEntry = mState.getEntry(packageName, mUserId); mAppEntry = mState.getEntry(packageName, mUserId);
mSession = mState.newSession(this);
lifecycle.addObserver(this);
} else { } else {
mFinishing = true; mFinishing = true;
} }
@@ -620,7 +620,11 @@ public class AppButtonsPreferenceController extends PreferenceController impleme
return false; return false;
} }
private boolean refreshUi() { @VisibleForTesting
boolean refreshUi() {
if (mPackageName == null) {
return false;
}
retrieveAppEntry(); retrieveAppEntry();
if (mAppEntry == null || mPackageInfo == null) { if (mAppEntry == null || mPackageInfo == null) {
return false; return false;

View File

@@ -344,6 +344,14 @@ public class AppButtonsPreferenceControllerTest {
assertThat(controllable).isTrue(); 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 * The test fragment which implements
* {@link ButtonActionDialogFragment.AppButtonsDialogListener} * {@link ButtonActionDialogFragment.AppButtonsDialogListener}