Improves performance by precaching signatures before sorting them

Fixes out of order crash when the same signature came back.
This commit is contained in:
Vitor Pamplona
2026-01-12 15:29:33 -05:00
parent e561492705
commit e9210872bd
@@ -64,9 +64,8 @@ class ThreadFeedFilter(
val eventsInHex = filteredThreadInfo.allNotes.map { it.idHex }.toSet() val eventsInHex = filteredThreadInfo.allNotes.map { it.idHex }.toSet()
val now = TimeUtils.now() val now = TimeUtils.now()
// Currently orders by date of each event, descending, at each level of the reply stack val signatures =
val order = filteredThreadInfo.allNotes.associateWith {
compareByDescending<Note> {
ThreadLevelCalculator ThreadLevelCalculator
.replyLevelSignature( .replyLevelSignature(
it, it,
@@ -78,6 +77,11 @@ class ThreadFeedFilter(
).signature ).signature
} }
// Currently orders by date of each event, descending, at each level of the reply stack
val order =
compareByDescending<Note> { signatures[it] }
.thenBy { it.idHex }
return filteredThreadInfo.allNotes.sortedWith(order) return filteredThreadInfo.allNotes.sortedWith(order)
} }
} }