Caches the User object to avoid being deleted by the soft reference on Local Cache

This commit is contained in:
Vitor Pamplona
2025-10-21 17:52:45 -04:00
parent e2b2b10994
commit d8907e3dfb

View File

@@ -40,13 +40,14 @@ class UserMetadataState(
val scope: CoroutineScope,
val settings: AccountSettings,
) {
// Creates a long-term reference for this note so that the GC doesn't collect the note it self
val user = cache.getOrCreateUser(signer.pubKey)
// fun getEphemeralChatListAddress() = cache.getOrCreateUser(signer.pubKey)
fun getUserMetadataUser(): User = cache.getOrCreateUser(signer.pubKey)
fun getUserMetadataFlow(): StateFlow<UserState> = user.flow().metadata.stateFlow
fun getUserMetadataFlow(): StateFlow<UserState> = getUserMetadataUser().flow().metadata.stateFlow
fun getUserMetadataEvent(): MetadataEvent? = getUserMetadataUser().latestMetadata
fun getUserMetadataEvent(): MetadataEvent? = user.latestMetadata
suspend fun sendNewUserMetadata(
name: String? = null,