diff --git a/services/core/java/com/android/server/pm/DeletePackageHelper.java b/services/core/java/com/android/server/pm/DeletePackageHelper.java index db860fe079dae..3fb4ab1fefc87 100644 --- a/services/core/java/com/android/server/pm/DeletePackageHelper.java +++ b/services/core/java/com/android/server/pm/DeletePackageHelper.java @@ -222,8 +222,12 @@ final class DeletePackageHelper { deleteFlags | PackageManager.DELETE_CHATTY, info, true); } if (res && pkg != null) { + final boolean packageInstalledForSomeUsers; + synchronized (mPm.mLock) { + packageInstalledForSomeUsers = mPm.mPackages.get(pkg.getPackageName()) != null; + } mPm.mInstantAppRegistry.onPackageUninstalled(pkg, uninstalledPs, - info.mRemovedUsers); + info.mRemovedUsers, packageInstalledForSomeUsers); } synchronized (mPm.mLock) { if (res) { diff --git a/services/core/java/com/android/server/pm/InstantAppRegistry.java b/services/core/java/com/android/server/pm/InstantAppRegistry.java index ea6e4583d7d77..39a28396608bf 100644 --- a/services/core/java/com/android/server/pm/InstantAppRegistry.java +++ b/services/core/java/com/android/server/pm/InstantAppRegistry.java @@ -444,14 +444,14 @@ public class InstantAppRegistry implements Watchable, Snappable { } public void onPackageUninstalled(@NonNull AndroidPackage pkg, @NonNull PackageSetting ps, - @NonNull int[] userIds) { + @NonNull int[] userIds, boolean packageInstalledForSomeUsers) { if (ps == null) { return; } synchronized (mLock) { for (int userId : userIds) { - if (ps.getInstalled(userId)) { + if (packageInstalledForSomeUsers && ps.getInstalled(userId)) { continue; }