diff --git a/app/src/main/java/eu/faircode/email/AdapterFolder.java b/app/src/main/java/eu/faircode/email/AdapterFolder.java index ffc37e3eab..4512cc64dd 100644 --- a/app/src/main/java/eu/faircode/email/AdapterFolder.java +++ b/app/src/main/java/eu/faircode/email/AdapterFolder.java @@ -690,37 +690,42 @@ public class AdapterFolder extends RecyclerView.Adapter 0) Collections.sort(folders, folders.get(0).getComparator(context)); - List parents = new ArrayList<>(); - Map idFolder = new HashMap<>(); - Map> parentChilds = new HashMap<>(); + List hierarchical; + if (account < 0) + hierarchical = folders; + else { + List parents = new ArrayList<>(); + Map idFolder = new HashMap<>(); + Map> parentChilds = new HashMap<>(); - for (TupleFolderEx folder : folders) { - idFolder.put(folder.id, folder); - if (folder.parent == null) - parents.add(folder); - else { - if (!parentChilds.containsKey(folder.parent)) - parentChilds.put(folder.parent, new ArrayList()); - parentChilds.get(folder.parent).add(folder); + for (TupleFolderEx folder : folders) { + idFolder.put(folder.id, folder); + if (folder.parent == null) + parents.add(folder); + else { + if (!parentChilds.containsKey(folder.parent)) + parentChilds.put(folder.parent, new ArrayList()); + parentChilds.get(folder.parent).add(folder); + } } - } - TupleFolderEx root = new TupleFolderEx(); - root.name = "[root]"; - root.child_refs = parents; - for (TupleFolderEx parent : parents) - parent.parent_ref = root; + TupleFolderEx root = new TupleFolderEx(); + root.name = "[root]"; + root.child_refs = parents; + for (TupleFolderEx parent : parents) + parent.parent_ref = root; - for (long pid : parentChilds.keySet()) { - TupleFolderEx parent = idFolder.get(pid); - if (parent != null) { - parent.child_refs = parentChilds.get(pid); - for (TupleFolderEx child : parent.child_refs) - child.parent_ref = parent; + for (long pid : parentChilds.keySet()) { + TupleFolderEx parent = idFolder.get(pid); + if (parent != null) { + parent.child_refs = parentChilds.get(pid); + for (TupleFolderEx child : parent.child_refs) + child.parent_ref = parent; + } } - } - List hierarchical = getHierarchical(parents, 0); + hierarchical = getHierarchical(parents, 0); + } DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new DiffCallback(items, hierarchical), false);