From 89f714b1adc7d945254131655e1023a2a7d6c27a Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Sat, 18 Feb 2023 19:07:16 -0500 Subject: [PATCH] Refactors thread assembler to reduce number of lists used. --- .../amethyst/model/ThreadAssembler.kt | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/ThreadAssembler.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/ThreadAssembler.kt index b718ffa52..afec5add1 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/ThreadAssembler.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/ThreadAssembler.kt @@ -37,12 +37,11 @@ class ThreadAssembler { val note = LocalCache.getOrCreateNote(noteId) if (note.event != null) { - val thread = mutableListOf() - val threadSet = mutableSetOf() + val thread = mutableSetOf() - val threadRoot = searchRoot(note) ?: note + val threadRoot = searchRoot(note, thread) ?: note - loadDown(threadRoot, thread, threadSet) + loadDown(threadRoot, thread) thread.toSet() } else { @@ -55,13 +54,12 @@ class ThreadAssembler { return result } - fun loadDown(note: Note, thread: MutableList, threadSet: MutableSet) { - if (note !in threadSet) { + fun loadDown(note: Note, thread: MutableSet) { + if (note !in thread) { thread.add(note) - threadSet.add(note) note.replies.forEach { - loadDown(it, thread, threadSet) + loadDown(it, thread) } } }