Removing empty folders in loader

Bug: 21050720
Change-Id: Id174bb1e18b070e32273d66649f0e286e3546f89
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java
index 3987c02..658a3e2 100644
--- a/src/com/android/launcher3/LauncherModel.java
+++ b/src/com/android/launcher3/LauncherModel.java
@@ -2331,6 +2331,22 @@
                     return;
                 }
 
+                // Remove any empty folder
+                LongArrayMap<FolderInfo> emptyFolders = sBgFolders.clone();
+                for (ItemInfo item: sBgItemsIdMap) {
+                    long container = item.container;
+                    if (emptyFolders.containsKey(container)) {
+                        emptyFolders.remove(container);
+                    }
+                }
+                for (FolderInfo folder : emptyFolders) {
+                    long folderId = folder.id;
+                    sBgFolders.remove(folderId);
+                    sBgItemsIdMap.remove(folderId);
+                    sBgWorkspaceItems.remove(folder);
+                    itemsToRemove.add(folderId);
+                }
+
                 if (itemsToRemove.size() > 0) {
                     ContentProviderClient client = contentResolver.acquireContentProviderClient(
                             contentUri);