Keeping folders synced when applications are uninstalled

-> fix bug 4905712

Change-Id: I4a250fd134e6d03bae30cfde6b33a82ed6f5fcef
This commit is contained in:
Adam Cohen
2011-06-24 15:57:39 -07:00
parent d63cfa9681
commit df1e4e868a
2 changed files with 19 additions and 15 deletions
+6 -11
View File
@@ -3404,9 +3404,9 @@ public class Workspace extends SmoothPagedView
} else if (tag instanceof FolderInfo) {
final FolderInfo info = (FolderInfo) tag;
final ArrayList<ShortcutInfo> contents = info.contents;
final ArrayList<ShortcutInfo> toRemove = new ArrayList<ShortcutInfo>(1);
final int contentsCount = contents.size();
boolean removedFromFolder = false;
final ArrayList<ShortcutInfo> appsToRemoveFromFolder =
new ArrayList<ShortcutInfo>();
for (int k = 0; k < contentsCount; k++) {
final ShortcutInfo appInfo = contents.get(k);
@@ -3416,19 +3416,14 @@ public class Workspace extends SmoothPagedView
if (Intent.ACTION_MAIN.equals(intent.getAction()) && name != null) {
for (String packageName: packageNames) {
if (packageName.equals(name.getPackageName())) {
toRemove.add(appInfo);
LauncherModel.deleteItemFromDatabase(mLauncher, appInfo);
removedFromFolder = true;
appsToRemoveFromFolder.add(appInfo);
}
}
}
}
contents.removeAll(toRemove);
if (removedFromFolder) {
final Folder folder = getOpenFolder();
if (folder != null)
folder.notifyDataSetChanged();
for (ShortcutInfo item: appsToRemoveFromFolder) {
info.remove(item);
LauncherModel.deleteItemFromDatabase(mLauncher, item);
}
} else if (tag instanceof LauncherAppWidgetInfo) {
final LauncherAppWidgetInfo info = (LauncherAppWidgetInfo) tag;