Migrates Desktop App to the new metadata cache.

This commit is contained in:
Vitor Pamplona
2026-02-04 15:38:16 -05:00
parent d2f77ed521
commit e6f7a543cd
6 changed files with 37 additions and 27 deletions
@@ -54,7 +54,7 @@ class ThreadAssembler(
// Check to see if there is an error in the tag and the root has replies
val rootNote = cache.getNoteIfExists(markedAsRoot) as? Note
if (rootNote?.replyTo?.isEmpty() == true) {
return cache.checkGetOrCreateNote(markedAsRoot) as? Note
return cache.checkGetOrCreateNote(markedAsRoot)
}
}
@@ -88,7 +88,7 @@ class ThreadAssembler(
)
fun findRoot(noteId: String): Note? {
val note = cache.checkGetOrCreateNote(noteId) as? Note ?: return null
val note = cache.checkGetOrCreateNote(noteId) ?: return null
return if (note.event != null) {
val thread = OnlyLatestVersionSet()
@@ -102,7 +102,7 @@ class ThreadAssembler(
fun findThreadFor(noteId: String): ThreadInfo? {
checkNotInMainThread()
val note = cache.checkGetOrCreateNote(noteId) as? Note ?: return null
val note = cache.checkGetOrCreateNote(noteId) ?: return null
return if (note.event != null) {
val thread = OnlyLatestVersionSet()
@@ -41,7 +41,11 @@ class MetadataPreloader(
*/
fun preloadForUsers(users: Collection<User>) {
users.forEach { user ->
val metadata = user.info
val metadata =
user
.metadata()
.flow.value
?.info
if (metadata != null) {
// Already have metadata, prefetch avatar
metadata.picture?.let { avatarUrl ->
@@ -58,7 +62,11 @@ class MetadataPreloader(
* Queue a single user for metadata preloading.
*/
fun preloadForUser(user: User) {
val metadata = user.info
val metadata =
user
.metadata()
.flow.value
?.info
if (metadata != null) {
metadata.picture?.let { avatarUrl ->
imagePrefetcher?.prefetch(avatarUrl)
@@ -73,7 +81,7 @@ class MetadataPreloader(
* Triggers avatar image prefetch.
*/
fun onMetadataReceived(user: User) {
user.info?.picture?.let { avatarUrl ->
user.metadata().flow.value?.info?.picture?.let { avatarUrl ->
imagePrefetcher?.prefetch(avatarUrl)
}
}
@@ -83,7 +91,7 @@ class MetadataPreloader(
*/
fun prefetchAvatars(users: Collection<User>) {
users.forEach { user ->
user.info?.picture?.let { avatarUrl ->
user.metadata().flow.value?.info?.picture?.let { avatarUrl ->
imagePrefetcher?.prefetch(avatarUrl)
}
}