Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 289d14b1 authored by Amit Kumar's avatar Amit Kumar
Browse files

Fix a critical crash when process database items

parent dc1ad03d
Loading
Loading
Loading
Loading
+11 −18
Original line number Original line Diff line number Diff line
@@ -257,12 +257,12 @@ public class AppProvider extends Service implements Provider {
                        || applicationItem.container == Constants.CONTAINER_HOTSEAT) {
                        || applicationItem.container == Constants.CONTAINER_HOTSEAT) {
                    mLauncherItems.add(applicationItem);
                    mLauncherItems.add(applicationItem);
                } else {
                } else {
                    List<LauncherItem> items = folderItems.get(applicationItem.container);
                    FolderItem folderItem =
                    if (items == null) {
                            (FolderItem) mLauncherItems.get(foldersIndex.get(applicationItem.container));
                        items = new ArrayList<>();
                    if (folderItem.items == null) {
                        folderItem.items = new ArrayList<>();
                    }
                    }
                    items.add(applicationItem);
                    folderItem.items.add(applicationItem);
                    folderItems.put(applicationItem.container, items);
                }
                }
            } else if (databaseItem.itemType == Constants.ITEM_TYPE_SHORTCUT) {
            } else if (databaseItem.itemType == Constants.ITEM_TYPE_SHORTCUT) {
                ShortcutItem shortcutItem;
                ShortcutItem shortcutItem;
@@ -281,12 +281,12 @@ public class AppProvider extends Service implements Provider {
                        || shortcutItem.container == Constants.CONTAINER_HOTSEAT) {
                        || shortcutItem.container == Constants.CONTAINER_HOTSEAT) {
                    mLauncherItems.add(shortcutItem);
                    mLauncherItems.add(shortcutItem);
                } else {
                } else {
                    List<LauncherItem> items = folderItems.get(shortcutItem.container);
                    FolderItem folderItem =
                    if (items == null) {
                            (FolderItem) mLauncherItems.get(foldersIndex.get(shortcutItem.container));
                        items = new ArrayList<>();
                    if (folderItem.items == null) {
                        folderItem.items = new ArrayList<>();
                    }
                    }
                    items.add(shortcutItem);
                    folderItem.items.add(shortcutItem);
                    folderItems.put(shortcutItem.container, items);
                }
                }
            } else if (databaseItem.itemType == Constants.ITEM_TYPE_FOLDER) {
            } else if (databaseItem.itemType == Constants.ITEM_TYPE_FOLDER) {
                FolderItem folderItem = new FolderItem();
                FolderItem folderItem = new FolderItem();
@@ -300,20 +300,13 @@ public class AppProvider extends Service implements Provider {
            }
            }
        }
        }


        //TODO: Fix crash here.
        if (foldersIndex.size() > 0) {
        if (foldersIndex.size() > 0) {
            for (int i = 0; i < foldersIndex.size(); i++) {
            for (int i = 0; i < foldersIndex.size(); i++) {
                FolderItem folderItem =
                FolderItem folderItem =
                        (FolderItem) mLauncherItems.get(foldersIndex.get(foldersIndex.keyAt(i)));
                        (FolderItem) mLauncherItems.get(foldersIndex.get(foldersIndex.keyAt(i)));
                folderItem.items = (folderItems.get(Long.parseLong(folderItem.id)));
                if (folderItem.items == null || folderItem.items.size() == 0) {
                    mLauncherItems.remove(folderItem);
                    DatabaseManager.getManager(this).removeLauncherItem(folderItem.id);
                } else {
                folderItem.icon = new GraphicsUtil(this).generateFolderIcon(this, folderItem);
                folderItem.icon = new GraphicsUtil(this).generateFolderIcon(this, folderItem);
            }
            }
        }
        }
        }


        applicationItems.removeAll(mDatabaseItems);
        applicationItems.removeAll(mDatabaseItems);
        mLauncherItems.addAll(applicationItems);
        mLauncherItems.addAll(applicationItems);