Improves performance by precaching signatures before sorting them
Fixes out of order crash when the same signature came back.
This commit is contained in:
+7
-3
@@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user