Consider folder diff differently

Fixes: 157813770
Test: manual

Change-Id: I0e95f7d9709cacfe1c3b8384dfb15208a4c36914
This commit is contained in:
Tracy Zhou
2020-06-10 10:21:39 -07:00
parent c11a808b99
commit fa88a25ea4

View File

@@ -59,7 +59,6 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
/**
* This class takes care of shrinking the workspace (by maximum of one row and one column), as a
@@ -248,12 +247,25 @@ public class GridSizeMigrationTaskV2 {
/** Return what's in the src but not in the dest */
private static List<DbEntry> calcDiff(List<DbEntry> src, List<DbEntry> dest) {
Set<String> destSet = dest.parallelStream().map(DbEntry::getIntentStr).collect(
Collectors.toSet());
Set<String> destIntentSet = new HashSet<>();
Set<Set<String>> destFolderIntentSet = new HashSet<>();
for (DbEntry entry : dest) {
if (entry.itemType == LauncherSettings.Favorites.ITEM_TYPE_FOLDER) {
destFolderIntentSet.add(entry.mFolderItems.keySet());
} else {
destIntentSet.add(entry.mIntent);
}
}
List<DbEntry> diff = new ArrayList<>();
for (DbEntry entry : src) {
if (!destSet.contains(entry.mIntent)) {
diff.add(entry);
if (entry.itemType == LauncherSettings.Favorites.ITEM_TYPE_FOLDER) {
if (!destFolderIntentSet.contains(entry.mFolderItems.keySet())) {
diff.add(entry);
}
} else {
if (!destIntentSet.contains(entry.mIntent)) {
diff.add(entry);
}
}
}
return diff;