Merge "Merge "Updated: always show the keyguard on device lockdown" into udc-qpr-dev am: db9f9d7658 am: 82107029a7" into main
diff --git a/services/core/java/com/android/server/pm/DeletePackageHelper.java b/services/core/java/com/android/server/pm/DeletePackageHelper.java
index caf263d..83f90a1 100644
--- a/services/core/java/com/android/server/pm/DeletePackageHelper.java
+++ b/services/core/java/com/android/server/pm/DeletePackageHelper.java
@@ -53,6 +53,7 @@
import android.os.UserHandle;
import android.os.UserManager;
import android.text.TextUtils;
+import android.util.ArraySet;
import android.util.EventLog;
import android.util.Log;
import android.util.Slog;
@@ -561,6 +562,17 @@
Slog.d(TAG, "Marking package:" + ps.getPackageName()
+ " uninstalled for user:" + nextUserId);
}
+
+ // Keep enabled and disabled components in case of DELETE_KEEP_DATA
+ ArraySet<String> enabledComponents = null;
+ ArraySet<String> disabledComponents = null;
+ if ((flags & PackageManager.DELETE_KEEP_DATA) != 0) {
+ enabledComponents = new ArraySet<String>(
+ ps.readUserState(nextUserId).getEnabledComponents());
+ disabledComponents = new ArraySet<String>(
+ ps.readUserState(nextUserId).getDisabledComponents());
+ }
+
// Preserve ArchiveState if this is not a full uninstall
ArchiveState archiveState =
(flags & DELETE_KEEP_DATA) == 0
@@ -580,8 +592,8 @@
false /*instantApp*/,
false /*virtualPreload*/,
null /*lastDisableAppCaller*/,
- null /*enabledComponents*/,
- null /*disabledComponents*/,
+ enabledComponents,
+ disabledComponents,
PackageManager.INSTALL_REASON_UNKNOWN,
PackageManager.UNINSTALL_REASON_UNKNOWN,
null /*harmfulAppWarning*/,
diff --git a/services/core/java/com/android/server/pm/pkg/PackageUserStateImpl.java b/services/core/java/com/android/server/pm/pkg/PackageUserStateImpl.java
index 12795c6..a76a7ce0 100644
--- a/services/core/java/com/android/server/pm/pkg/PackageUserStateImpl.java
+++ b/services/core/java/com/android/server/pm/pkg/PackageUserStateImpl.java
@@ -393,29 +393,27 @@
}
public @NonNull PackageUserStateImpl setDisabledComponents(@Nullable ArraySet<String> value) {
- if (value == null) {
- return this;
- }
if (mDisabledComponentsWatched == null) {
mDisabledComponentsWatched = new WatchedArraySet<>();
mDisabledComponentsWatched.registerObserver(mSnapshot);
}
mDisabledComponentsWatched.clear();
- mDisabledComponentsWatched.addAll(value);
+ if (value != null) {
+ mDisabledComponentsWatched.addAll(value);
+ }
onChanged();
return this;
}
public @NonNull PackageUserStateImpl setEnabledComponents(@Nullable ArraySet<String> value) {
- if (value == null) {
- return this;
- }
if (mEnabledComponentsWatched == null) {
mEnabledComponentsWatched = new WatchedArraySet<>();
mEnabledComponentsWatched.registerObserver(mSnapshot);
}
mEnabledComponentsWatched.clear();
- mEnabledComponentsWatched.addAll(value);
+ if (value != null) {
+ mEnabledComponentsWatched.addAll(value);
+ }
onChanged();
return this;
}