extract logical expression for which notes to exclude from search results

This commit is contained in:
David Kaspar 2025-01-28 11:55:17 +01:00
parent d825995ef4
commit 1bd52f163f

View File

@ -1845,6 +1845,21 @@ object LocalCache {
)
}
/**
* Will return true if supplied note is one of events to be excluded from
* search results.
*/
private fun excludeNoteEventFromSearchResults(note: Note): Boolean =
(
note.event is GenericRepostEvent ||
note.event is RepostEvent ||
note.event is CommunityPostApprovalEvent ||
note.event is ReactionEvent ||
note.event is LnZapEvent ||
note.event is LnZapRequestEvent ||
note.event is FileHeaderEvent
)
fun findNotesStartingWith(
text: String,
forAccount: Account,
@ -1855,30 +1870,13 @@ object LocalCache {
if (key != null) {
val note = getNoteIfExists(key)
if ((note != null) &&
!(
note.event is GenericRepostEvent ||
note.event is RepostEvent ||
note.event is CommunityPostApprovalEvent ||
note.event is ReactionEvent ||
note.event is LnZapEvent ||
note.event is LnZapRequestEvent ||
note.event is FileHeaderEvent
)
) {
if ((note != null) && !excludeNoteEventFromSearchResults(note)) {
return listOfNotNull(note)
}
}
return notes.filter { _, note ->
if (note.event is GenericRepostEvent ||
note.event is RepostEvent ||
note.event is CommunityPostApprovalEvent ||
note.event is ReactionEvent ||
note.event is LnZapEvent ||
note.event is LnZapRequestEvent ||
note.event is FileHeaderEvent
) {
if (excludeNoteEventFromSearchResults(note)) {
return@filter false
}
@ -1903,14 +1901,7 @@ object LocalCache {
return@filter false
} +
addressables.filter { _, addressable ->
if (addressable.event is GenericRepostEvent ||
addressable.event is RepostEvent ||
addressable.event is CommunityPostApprovalEvent ||
addressable.event is ReactionEvent ||
addressable.event is LnZapEvent ||
addressable.event is LnZapRequestEvent ||
addressable.event is FileHeaderEvent
) {
if (excludeNoteEventFromSearchResults(addressable)) {
return@filter false
}