Folder auto-destroys itself when there is only one item left.
Change-Id: I4ea41e0730e3dc474a518eba0a04c11167b5c1df
diff --git a/src/com/android/launcher2/LauncherModel.java b/src/com/android/launcher2/LauncherModel.java
index 7cfab2a..a79a968 100644
--- a/src/com/android/launcher2/LauncherModel.java
+++ b/src/com/android/launcher2/LauncherModel.java
@@ -380,15 +380,33 @@
});
}
+ static void deleteFolderContentsFromDatabase(Context context, final FolderInfo info) {
+ deleteFolderContentsFromDatabase(context, info, false);
+ }
+
/**
* Remove the contents of the specified folder from the database
*/
- static void deleteFolderContentsFromDatabase(Context context, FolderInfo info) {
+ static void deleteFolderContentsFromDatabase(Context context, final FolderInfo info,
+ boolean post) {
+ // TODO: this post flag is temporary to fix an ordering of commands issue. In future,
+ // all db operations will be moved to the worker thread, so this can be discarded at
+ // that time.
final ContentResolver cr = context.getContentResolver();
- cr.delete(LauncherSettings.Favorites.getContentUri(info.id, false), null, null);
- cr.delete(LauncherSettings.Favorites.CONTENT_URI,
- LauncherSettings.Favorites.CONTAINER + "=" + info.id, null);
+ if (!post) {
+ cr.delete(LauncherSettings.Favorites.getContentUri(info.id, false), null, null);
+ cr.delete(LauncherSettings.Favorites.CONTENT_URI,
+ LauncherSettings.Favorites.CONTAINER + "=" + info.id, null);
+ } else {
+ sWorker.post(new Runnable() {
+ public void run() {
+ cr.delete(LauncherSettings.Favorites.getContentUri(info.id, false), null, null);
+ cr.delete(LauncherSettings.Favorites.CONTENT_URI,
+ LauncherSettings.Favorites.CONTAINER + "=" + info.id, null);
+ }
+ });
+ }
}
/**