diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/LargeSoftCacheAddressExt.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/LargeSoftCacheAddressExt.kt
index 5e1e70766..42a84bf44 100644
--- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/LargeSoftCacheAddressExt.kt
+++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/LargeSoftCacheAddressExt.kt
@@ -45,6 +45,28 @@ fun kindEnd(kind: Int) = kindEnd(kind, END_KEY)
val ACCEPT_ALL_FILTER = CacheCollectors.BiFilter
{ key, note -> true }
+fun LargeSoftCache.filter(
+ kind: Int,
+ consumer: CacheCollectors.BiFilter = ACCEPT_ALL_FILTER,
+): List = filter(kindStart(kind), kindEnd(kind), consumer)
+
+fun LargeSoftCache.filter(
+ kinds: List,
+ consumer: CacheCollectors.BiFilter = ACCEPT_ALL_FILTER,
+): List {
+ val set = mutableSetOf()
+ kinds.forEach {
+ set.addAll(filter(kindStart(it), kindEnd(it), consumer))
+ }
+ return set.toList()
+}
+
+fun LargeSoftCache.filter(
+ kind: Int,
+ pubKey: HexKey,
+ consumer: CacheCollectors.BiFilter = ACCEPT_ALL_FILTER,
+): List = filter(kindStart(kind, pubKey), kindEnd(kind, pubKey), consumer)
+
fun LargeSoftCache.filterIntoSet(
kind: Int,
consumer: CacheCollectors.BiFilter = ACCEPT_ALL_FILTER,
diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt
index 6a4ea2a7a..246c65553 100644
--- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt
+++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt
@@ -2126,18 +2126,7 @@ object LocalCache : ILocalCache {
}
}
- fun getFollowSetNotesFor(user: User): List {
- checkNotInMainThread()
-
- return addressables
- .filter { _, note ->
- val listEvent = note.event
- (
- listEvent is PeopleListEvent &&
- user.pubkeyHex == listEvent.pubKey
- )
- }
- }
+ fun getPeopleListNotesFor(user: User): List = addressables.filter(PeopleListEvent.KIND, user.pubkeyHex)
fun findStatusesForUser(user: User): ImmutableList {
checkNotInMainThread()
diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/nip51Lists/followSets/FollowSetState.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/nip51Lists/followSets/FollowSetState.kt
index 0d1326c81..360ec05c0 100644
--- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/nip51Lists/followSets/FollowSetState.kt
+++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/nip51Lists/followSets/FollowSetState.kt
@@ -47,7 +47,7 @@ class FollowSetState(
suspend fun getFollowSetNotes() =
withContext(Dispatchers.IO) {
- val followSetNotes = LocalCache.getFollowSetNotesFor(user)
+ val followSetNotes = cache.getPeopleListNotesFor(user)
return@withContext followSetNotes
}