From 80cdc48795db53ba9f2074ddb9a31e1a54f708d9 Mon Sep 17 00:00:00 2001 From: Felipe Teixeira <134708771+raredeveloper@users.noreply.github.com> Date: Wed, 15 Nov 2023 13:12:09 -0300 Subject: [PATCH] fix(treeview): use sort only when necessary when adding a child (#1456) --- .../androidide/fragments/sidebar/FileTreeFragment.kt | 4 ++-- .../androidide/tasks/callables/FileTreeCallable.java | 2 +- .../main/java/com/unnamed/b/atv/model/TreeNode.java | 11 +++++++++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/itsaky/androidide/fragments/sidebar/FileTreeFragment.kt b/app/src/main/java/com/itsaky/androidide/fragments/sidebar/FileTreeFragment.kt index bf6893cf9..221254309 100755 --- a/app/src/main/java/com/itsaky/androidide/fragments/sidebar/FileTreeFragment.kt +++ b/app/src/main/java/com/itsaky/androidide/fragments/sidebar/FileTreeFragment.kt @@ -174,7 +174,7 @@ class FileTreeFragment : BottomSheetDialogFragment(), TreeNodeClickListener, for (file in files) { val node = TreeNode(file) node.viewHolder = FileTreeViewHolder(context) - parent.addChild(node) + parent.addChild(node, false) } } @@ -218,7 +218,7 @@ class FileTreeFragment : BottomSheetDialogFragment(), TreeNodeClickListener, val projectRoot = TreeNode.root(projectDir) projectRoot.viewHolder = FileTreeViewHolder(context) - rootNode.addChild(projectRoot) + rootNode.addChild(projectRoot, false) binding!!.horizontalCroll.visibility = View.GONE binding!!.horizontalCroll.visibility = View.VISIBLE diff --git a/app/src/main/java/com/itsaky/androidide/tasks/callables/FileTreeCallable.java b/app/src/main/java/com/itsaky/androidide/tasks/callables/FileTreeCallable.java index 75cde7485..edc7af479 100755 --- a/app/src/main/java/com/itsaky/androidide/tasks/callables/FileTreeCallable.java +++ b/app/src/main/java/com/itsaky/androidide/tasks/callables/FileTreeCallable.java @@ -54,7 +54,7 @@ public class FileTreeCallable implements Callable { for (File file : files) { TreeNode node = new TreeNode(file); node.setViewHolder(new FileTreeViewHolder(ctx)); - parent.addChild(node); + parent.addChild(node, false); } } diff --git a/treeview/src/main/java/com/unnamed/b/atv/model/TreeNode.java b/treeview/src/main/java/com/unnamed/b/atv/model/TreeNode.java index 8a1a92e28..3dbfe000b 100755 --- a/treeview/src/main/java/com/unnamed/b/atv/model/TreeNode.java +++ b/treeview/src/main/java/com/unnamed/b/atv/model/TreeNode.java @@ -54,11 +54,18 @@ public class TreeNode { } public TreeNode addChild(TreeNode childNode) { + return addChild(childNode, true); + } + + public TreeNode addChild(TreeNode childNode, boolean sort) { childNode.mParent = this; childNode.mId = generateId(); children.add(childNode); - Collections.sort(children, new SortFileName()); - Collections.sort(children, new SortFolder()); + + if (sort) { + Collections.sort(children, new SortFileName()); + Collections.sort(children, new SortFolder()); + } return this; }