diff options
author | Todd Kennedy <toddke@google.com> | 2015-10-21 20:38:28 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2015-10-21 20:38:28 +0000 |
commit | d12f298da4748321d9023185a4ee09c3324c4673 (patch) | |
tree | 5cc1024ec70fb1e3e7988bd9dd33bbcb875e3d48 /services/core/java/com/android/server/pm | |
parent | 0b639c78f112252b93314f016b0e1ed1abafc4e3 (diff) | |
parent | 0cd10ec8cf7a896bbdfc0639bf5f9c663c46edbb (diff) | |
download | frameworks_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.java | 13 |
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()); } } |