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);
|
mDpm = (DevicePolicyManager) activity.getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||||
mUserManager = (UserManager) activity.getSystemService(Context.USER_SERVICE);
|
mUserManager = (UserManager) activity.getSystemService(Context.USER_SERVICE);
|
||||||
mPm = activity.getPackageManager();
|
mPm = activity.getPackageManager();
|
||||||
|
|
||||||
if (!ensurePackageInfoAvailable(activity)) {
|
if (!ensurePackageInfoAvailable(activity)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
startListeningToPackageRemove();
|
startListeningToPackageRemove();
|
||||||
|
|
||||||
setHasOptionsMenu(true);
|
setHasOptionsMenu(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||||
|
if (!ensurePackageInfoAvailable(getActivity())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
super.onCreatePreferences(savedInstanceState, rootKey);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
stopListeningToPackageRemove();
|
stopListeningToPackageRemove();
|
||||||
|
@@ -170,7 +170,7 @@ public final class AppInfoDashboardFragmentTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void launchFragment_hasNoPackageInfo_shouldFinish() {
|
public void ensurePackageInfoAvailable_hasNoPackageInfo_shouldFinish() {
|
||||||
ReflectionHelpers.setField(mFragment, "mPackageInfo", null);
|
ReflectionHelpers.setField(mFragment, "mPackageInfo", null);
|
||||||
|
|
||||||
assertThat(mFragment.ensurePackageInfoAvailable(mActivity)).isFalse();
|
assertThat(mFragment.ensurePackageInfoAvailable(mActivity)).isFalse();
|
||||||
@@ -178,7 +178,7 @@ public final class AppInfoDashboardFragmentTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void launchFragment_hasPackageInfo_shouldReturnTrue() {
|
public void ensurePackageInfoAvailable_hasPackageInfo_shouldReturnTrue() {
|
||||||
final PackageInfo packageInfo = mock(PackageInfo.class);
|
final PackageInfo packageInfo = mock(PackageInfo.class);
|
||||||
ReflectionHelpers.setField(mFragment, "mPackageInfo", packageInfo);
|
ReflectionHelpers.setField(mFragment, "mPackageInfo", packageInfo);
|
||||||
|
|
||||||
@@ -186,6 +186,16 @@ public final class AppInfoDashboardFragmentTest {
|
|||||||
verify(mActivity, never()).finishAndRemoveTask();
|
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
|
@Test
|
||||||
public void packageSizeChange_isOtherPackage_shouldNotRefreshUi() {
|
public void packageSizeChange_isOtherPackage_shouldNotRefreshUi() {
|
||||||
ReflectionHelpers.setField(mFragment, "mPackageName", PACKAGE_NAME);
|
ReflectionHelpers.setField(mFragment, "mPackageName", PACKAGE_NAME);
|
||||||
|
Reference in New Issue
Block a user