Fixes missing cache after AI PR for the desktop app
Removes dependency on the Cache from User. Updates interface methods to match.
This commit is contained in:
@@ -324,7 +324,7 @@ object LocalCache : ILocalCache, ICacheProvider {
|
||||
return users.get(key)
|
||||
}
|
||||
|
||||
override fun countUsers(predicate: (String, Any) -> Boolean): Int {
|
||||
override fun countUsers(predicate: (String, User) -> Boolean): Int {
|
||||
var count = 0
|
||||
users.forEach { key, user ->
|
||||
if (predicate(key, user)) count++
|
||||
@@ -531,9 +531,13 @@ object LocalCache : ILocalCache, ICacheProvider {
|
||||
|
||||
// avoids processing empty contact lists.
|
||||
if (event.createdAt > (user.latestContactList?.createdAt ?: 0) && !event.tags.isEmpty() && (wasVerified || justVerify(event))) {
|
||||
user.updateContactList(event)
|
||||
val needsToUpdateFollowers = user.updateContactList(event)
|
||||
// Log.d("CL", "Consumed contact list ${user.toNostrUri()} ${event.relays()?.size}")
|
||||
|
||||
needsToUpdateFollowers.forEach {
|
||||
getUserIfExists(it)?.flowSet?.followers?.invalidateData()
|
||||
}
|
||||
|
||||
updateObservables(event)
|
||||
|
||||
return true
|
||||
|
||||
@@ -21,9 +21,6 @@
|
||||
package com.vitorpamplona.amethyst.model
|
||||
|
||||
// Re-export from commons for backwards compatibility
|
||||
typealias UserDependencies = com.vitorpamplona.amethyst.commons.model.UserDependencies
|
||||
typealias User = com.vitorpamplona.amethyst.commons.model.User
|
||||
typealias UserFlowSet = com.vitorpamplona.amethyst.commons.model.UserFlowSet
|
||||
typealias RelayInfo = com.vitorpamplona.amethyst.commons.model.RelayInfo
|
||||
typealias UserBundledRefresherFlow = com.vitorpamplona.amethyst.commons.model.UserBundledRefresherFlow
|
||||
typealias UserState = com.vitorpamplona.amethyst.commons.model.UserState
|
||||
|
||||
+4
-1
@@ -36,6 +36,7 @@ import com.vitorpamplona.amethyst.model.nip28PublicChats.PublicChatChannel
|
||||
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
|
||||
import com.vitorpamplona.quartz.nip01Core.metadata.UserMetadata
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl
|
||||
import com.vitorpamplona.quartz.nip01Core.tags.people.isTaggedUser
|
||||
import com.vitorpamplona.quartz.nip51Lists.bookmarkList.BookmarkListEvent
|
||||
import com.vitorpamplona.quartz.nip51Lists.hashtagList.HashtagListEvent
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
@@ -392,7 +393,9 @@ fun observeUserFollowerCount(
|
||||
.followers.stateFlow
|
||||
.sample(200)
|
||||
.mapLatest { userState ->
|
||||
userState.user.transientFollowerCount()
|
||||
LocalCache.countUsers { _, user ->
|
||||
user.latestContactList?.isTaggedUser(user.pubkeyHex) ?: false
|
||||
}
|
||||
}.distinctUntilChanged()
|
||||
.flowOn(Dispatchers.IO)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user