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

Commit 276edc8d authored by Fan Zhang's avatar Fan Zhang
Browse files

Do not retrive app detail if the fragment is exiting.

The exit flag can be set by a variety of things, such as when package is
removed, or package is invalid (hidden mainline module). Loading such
packages changes the internal state of ApplicationsState class (an app
singleton), which leads to inconsistencies later.

Fixes: 130166465
Test: robotest
Change-Id: Ib09240cb694fa16692914a7aa9ce354869615c2d
parent d8b316f8
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -112,7 +112,8 @@ public class AppInfoDashboardFragment extends DashboardFragment
    private UserManager mUserManager;
    private PackageManager mPm;

    private boolean mFinishing;
    @VisibleForTesting
    boolean mFinishing;
    private boolean mListeningToPackageRemove;


@@ -544,7 +545,7 @@ public class AppInfoDashboardFragment extends DashboardFragment
    @VisibleForTesting
    void retrieveAppEntry() {
        final Activity activity = getActivity();
        if (activity == null) {
        if (activity == null || mFinishing) {
            return;
        }
        if (mState == null) {
+7 −0
Original line number Diff line number Diff line
@@ -281,6 +281,13 @@ public final class AppInfoDashboardFragmentTest {
        assertThat(mFragment.createPreferenceControllers(mShadowContext)).isNull();
    }

    @Test
    public void getPreferenceControllers_exiting_shouldReturnNull() {
        mFragment.mFinishing = true;

        assertThat(mFragment.createPreferenceControllers(mShadowContext)).isNull();
    }

    @Test
    public void getNumberOfUserWithPackageInstalled_twoUsersInstalled_shouldReturnTwo()
            throws PackageManager.NameNotFoundException {