Merge "Fix a crash when launching app detail for bad package name"
This commit is contained in:
@@ -205,16 +205,22 @@ public class AppInfoDashboardFragment extends DashboardFragment
|
||||
mDpm = (DevicePolicyManager) activity.getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||
mUserManager = (UserManager) activity.getSystemService(Context.USER_SERVICE);
|
||||
mPm = activity.getPackageManager();
|
||||
|
||||
if (!ensurePackageInfoAvailable(activity)) {
|
||||
return;
|
||||
}
|
||||
|
||||
startListeningToPackageRemove();
|
||||
|
||||
setHasOptionsMenu(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
if (!ensurePackageInfoAvailable(getActivity())) {
|
||||
return;
|
||||
}
|
||||
super.onCreatePreferences(savedInstanceState, rootKey);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
stopListeningToPackageRemove();
|
||||
|
@@ -170,7 +170,7 @@ public final class AppInfoDashboardFragmentTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void launchFragment_hasNoPackageInfo_shouldFinish() {
|
||||
public void ensurePackageInfoAvailable_hasNoPackageInfo_shouldFinish() {
|
||||
ReflectionHelpers.setField(mFragment, "mPackageInfo", null);
|
||||
|
||||
assertThat(mFragment.ensurePackageInfoAvailable(mActivity)).isFalse();
|
||||
@@ -178,7 +178,7 @@ public final class AppInfoDashboardFragmentTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void launchFragment_hasPackageInfo_shouldReturnTrue() {
|
||||
public void ensurePackageInfoAvailable_hasPackageInfo_shouldReturnTrue() {
|
||||
final PackageInfo packageInfo = mock(PackageInfo.class);
|
||||
ReflectionHelpers.setField(mFragment, "mPackageInfo", packageInfo);
|
||||
|
||||
@@ -186,6 +186,16 @@ public final class AppInfoDashboardFragmentTest {
|
||||
verify(mActivity, never()).finishAndRemoveTask();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void createPreference_hasNoPackageInfo_shouldSkip() {
|
||||
ReflectionHelpers.setField(mFragment, "mPackageInfo", null);
|
||||
|
||||
mFragment.onCreatePreferences(new Bundle(), "root_key");
|
||||
|
||||
verify(mActivity).finishAndRemoveTask();
|
||||
verify(mFragment, never()).getPreferenceScreen();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void packageSizeChange_isOtherPackage_shouldNotRefreshUi() {
|
||||
ReflectionHelpers.setField(mFragment, "mPackageName", PACKAGE_NAME);
|
||||
|
Reference in New Issue
Block a user