Timeline : fix text item not refreshed when content change

This commit is contained in:
ganfra 2024-07-01 21:48:35 +02:00
parent 50c3e65998
commit cf684bf43a

View file

@ -74,17 +74,17 @@ fun TimelineItemTextView(
internal fun getTextWithResolvedMentions(content: TimelineItemTextBasedContent): CharSequence { internal fun getTextWithResolvedMentions(content: TimelineItemTextBasedContent): CharSequence {
val userProfileCache = LocalRoomMemberProfilesCache.current val userProfileCache = LocalRoomMemberProfilesCache.current
val lastCacheUpdate by userProfileCache.lastCacheUpdate.collectAsState() val lastCacheUpdate by userProfileCache.lastCacheUpdate.collectAsState()
val formattedBody = remember(content.htmlBody, lastCacheUpdate) { val formattedBody = remember(content.formattedBody, lastCacheUpdate) {
updateMentionSpans(content.formattedBody, userProfileCache) content.formattedBody?.let { formattedBody ->
SpannableString(content.formattedBody ?: content.body) updateMentionSpans(formattedBody, userProfileCache)
formattedBody
}
}
return SpannableString(formattedBody ?: content.body)
} }
return formattedBody private fun updateMentionSpans(text: CharSequence, cache: RoomMemberProfilesCache): Boolean {
}
private fun updateMentionSpans(text: CharSequence?, cache: RoomMemberProfilesCache): Boolean {
var changedContents = false var changedContents = false
if (text != null) {
for (mentionSpan in text.getMentionSpans()) { for (mentionSpan in text.getMentionSpans()) {
when (mentionSpan.type) { when (mentionSpan.type) {
MentionSpan.Type.USER -> { MentionSpan.Type.USER -> {
@ -100,7 +100,6 @@ private fun updateMentionSpans(text: CharSequence?, cache: RoomMemberProfilesCac
MentionSpan.Type.ROOM -> Unit MentionSpan.Type.ROOM -> Unit
} }
} }
}
return changedContents return changedContents
} }