diff options
| author | 2015-10-21 20:59:42 +0000 | |
|---|---|---|
| committer | 2015-10-21 20:59:42 +0000 | |
| commit | f81de0e4a5f33e8d044e18d7f65dbc40ad819e3c (patch) | |
| tree | 779bd93975c7dd435da521ff6d6937466e43a8a0 | |
| parent | 6655630c962c68e5ca510f4d3249d00e819336f8 (diff) | |
| parent | 68457b9cd49a695ed50c51eb9c0d0b63fcead737 (diff) | |
Merge "Maintain shared user list on OTA" into mnc-dr-dev am: 0cd10ec8cf am: d12f298da4 am: c9f3b2f54b
am: 68457b9cd4
* commit '68457b9cd49a695ed50c51eb9c0d0b63fcead737':
Maintain shared user list on OTA
| -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 61d26767cfb6..d148a4ff1f2e 100644 --- a/services/core/java/com/android/server/pm/Settings.java +++ b/services/core/java/com/android/server/pm/Settings.java @@ -514,7 +514,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()); } } |