merge call chain with flatMap (slight performance improvement)

This commit is contained in:
davotoula
2026-03-06 21:49:35 +01:00
parent a89bfd0b05
commit 4e614a3179
5 changed files with 32 additions and 34 deletions
@@ -1898,7 +1898,7 @@ class Account(
fun getRelevantReports(note: Note): Set<Note> {
val innerReports =
if (note.event is RepostEvent || note.event is GenericRepostEvent) {
note.replyTo?.map { getRelevantReports(it) }?.flatten() ?: emptyList()
note.replyTo?.flatMap { getRelevantReports(it) } ?: emptyList()
} else {
emptyList()
}
@@ -2770,10 +2770,9 @@ object LocalCache : ILocalCache, ICacheProvider {
val childrenToBeRemoved = mutableListOf<Note>()
val toBeRemoved =
account.hiddenUsers.flow.value.hiddenUsers
.map { userHex ->
(notes.filter { _, it -> it.event?.pubKey == userHex } + addressables.filter { _, it -> it.event?.pubKey == userHex }).toSet()
}.flatten()
account.hiddenUsers.flow.value.hiddenUsers.flatMap { userHex ->
(notes.filter { _, it -> it.event?.pubKey == userHex } + addressables.filter { _, it -> it.event?.pubKey == userHex }).toSet()
}
toBeRemoved.forEach {
removeFromCache(it)
@@ -170,7 +170,7 @@ internal fun <T> Iterable<T>.fillToSize(
transform: (List<T>) -> T,
): List<T> {
val capacity = ceil(size.safeDiv(count())).roundToInt()
return map { data -> List(capacity) { data } }.flatten().chunkToSize(size, transform)
return flatMap { data -> List(capacity) { data } }.chunkToSize(size, transform)
}
internal fun <T> Iterable<T>.chunkToSize(
@@ -66,15 +66,15 @@ fun DisplayUncitedHashtags(
val tagsInContent =
state
.paragraphs
.map {
it.words.mapNotNull {
.flatMap { paragraphState ->
paragraphState.words.mapNotNull {
if (it is HashTagSegment) {
it.hashtag
} else {
null
}
}
}.flatten()
}
val unusedHashtags =
tagsInEvent.filterNot { eventTag ->
@@ -76,29 +76,28 @@ fun filterUserProfilePosts(
user.outboxRelays()?.ifEmpty { null }
?: (user.allUsedRelays() + LocalCache.relayHints.hintsForKey(user.pubkeyHex))
return relays
.map { relay ->
listOf(
RelayBasedFilter(
relay = relay,
filter =
Filter(
kinds = UserProfilePostKinds1,
authors = listOf(user.pubkeyHex),
limit = 500,
since = since?.get(relay)?.time,
),
),
RelayBasedFilter(
relay = relay,
filter =
Filter(
kinds = UserProfilePostKinds2,
authors = listOf(user.pubkeyHex),
limit = 50,
since = since?.get(relay)?.time,
),
),
)
}.flatten()
return relays.flatMap { relay ->
listOf(
RelayBasedFilter(
relay = relay,
filter =
Filter(
kinds = UserProfilePostKinds1,
authors = listOf(user.pubkeyHex),
limit = 500,
since = since?.get(relay)?.time,
),
),
RelayBasedFilter(
relay = relay,
filter =
Filter(
kinds = UserProfilePostKinds2,
authors = listOf(user.pubkeyHex),
limit = 50,
since = since?.get(relay)?.time,
),
),
)
}
}