Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ada1a39f authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Fix a crash when launching app detail for bad package name"

parents 98a1ebed 13d25511
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -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();
+12 −2
Original line number Diff line number Diff line
@@ -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);