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

Commit 6d5ec860 authored by Alex Buynytskyy's avatar Alex Buynytskyy
Browse files

Cleanup removed package's data immediately.

+postpone UI update only

We don't have a good way to know if the package was fully removed, or
moved to /data/app. As this is all done during startup, we can't stop
and process removals before scanning different partitions.

Bug: 295047859
Bug: 245997611
Fixes: 295047859
Test: presubmit
Change-Id: Ib7bdff7e2fb80c2d7dfbf3b566e18bbbcf67b8b5
parent c4316c09
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -3349,9 +3349,7 @@ final class InstallPackageHelper {
            if (disabledPs == null) {
                logCriticalInfo(Log.WARN, "System package " + packageName
                        + " no longer exists; its data will be wiped");
                mInjector.getHandler().post(
                        () -> mRemovePackageHelper.removePackageData(ps, userIds));
                expectingBetter.put(ps.getPackageName(), ps.getPath());
                mRemovePackageHelper.removePackageData(ps, userIds);
            } else {
                // we still have a disabled system package, but, it still might have
                // been removed. check the code path still exists and check there's
+7 −5
Original line number Diff line number Diff line
@@ -395,11 +395,13 @@ final class RemovePackageHelper {
                mPm.mSettings.removeRenamedPackageLPw(deletedPs.getRealName());
            }
            if (changedUsers.size() > 0) {
                mPm.mInjector.getBackgroundHandler().post(() -> {
                    final PreferredActivityHelper preferredActivityHelper =
                            new PreferredActivityHelper(mPm, mBroadcastHelper);
                    preferredActivityHelper.updateDefaultHomeNotLocked(mPm.snapshotComputer(),
                            changedUsers);
                    mBroadcastHelper.sendPreferredActivityChangedBroadcast(UserHandle.USER_ALL);
                });
            }
        } else if (!deletedPs.isSystem() && outInfo != null && !outInfo.mIsUpdate
                && outInfo.mRemovedUsers != null && !outInfo.mIsExternal) {