Merge change 3374 into donut
* changes: Fix tracking of backup participants across package remove/update
This commit is contained in:
@@ -337,7 +337,14 @@ class BackupManagerService extends IBackupManager.Stub {
|
|||||||
int uid = app.uid;
|
int uid = app.uid;
|
||||||
HashSet<ApplicationInfo> set = mBackupParticipants.get(uid);
|
HashSet<ApplicationInfo> set = mBackupParticipants.get(uid);
|
||||||
if (set != null) {
|
if (set != null) {
|
||||||
set.remove(app);
|
// Find the existing entry with the same package name, and remove it.
|
||||||
|
// We can't just remove(app) because the instances are different.
|
||||||
|
for (ApplicationInfo entry: set) {
|
||||||
|
if (entry.packageName.equals(app.packageName)) {
|
||||||
|
set.remove(entry);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (set.size() == 0) {
|
if (set.size() == 0) {
|
||||||
mBackupParticipants.delete(uid); }
|
mBackupParticipants.delete(uid); }
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user