summaryrefslogtreecommitdiffstats
path: root/services/core/java/com/android/server/pm
diff options
context:
space:
mode:
authorTodd Kennedy <toddke@google.com>2015-10-21 20:38:28 +0000
committerandroid-build-merger <android-build-merger@google.com>2015-10-21 20:38:28 +0000
commitd12f298da4748321d9023185a4ee09c3324c4673 (patch)
tree5cc1024ec70fb1e3e7988bd9dd33bbcb875e3d48 /services/core/java/com/android/server/pm
parent0b639c78f112252b93314f016b0e1ed1abafc4e3 (diff)
parent0cd10ec8cf7a896bbdfc0639bf5f9c663c46edbb (diff)
downloadframeworks_base-d12f298da4748321d9023185a4ee09c3324c4673.zip
frameworks_base-d12f298da4748321d9023185a4ee09c3324c4673.tar.gz
frameworks_base-d12f298da4748321d9023185a4ee09c3324c4673.tar.bz2
Merge "Maintain shared user list on OTA" into mnc-dr-dev
am: 0cd10ec8cf * commit '0cd10ec8cf7a896bbdfc0639bf5f9c663c46edbb': Maintain shared user list on OTA
Diffstat (limited to 'services/core/java/com/android/server/pm')
-rw-r--r--services/core/java/com/android/server/pm/Settings.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java
index 943e649..647c17b 100644
--- a/services/core/java/com/android/server/pm/Settings.java
+++ b/services/core/java/com/android/server/pm/Settings.java
@@ -517,7 +517,18 @@ final class Settings {
ArrayList<String> removeStage = new ArrayList<String>();
for (Map.Entry<String,SharedUserSetting> entry : mSharedUsers.entrySet()) {
final SharedUserSetting sus = entry.getValue();
- if (sus == null || sus.packages.size() == 0) {
+ if (sus == null) {
+ removeStage.add(entry.getKey());
+ continue;
+ }
+ // remove packages that are no longer installed
+ for (Iterator<PackageSetting> iter = sus.packages.iterator(); iter.hasNext();) {
+ PackageSetting ps = iter.next();
+ if (mPackages.get(ps.name) == null) {
+ iter.remove();
+ }
+ }
+ if (sus.packages.size() == 0) {
removeStage.add(entry.getKey());
}
}