Filters Message Feed DAL to only take PrivateMessages in the Notification Bubble.

This commit is contained in:
Vitor Pamplona 2023-05-29 16:25:35 -04:00
parent c58c20cc54
commit 64f98e4b92
2 changed files with 20 additions and 3 deletions

View File

@ -85,7 +85,7 @@ object ChatroomListKnownFeedFilter : AdditiveFeedFilter<Note>() {
}
}
myNewList
sort(myNewList.toSet()).take(1000)
}
Log.d("Time", "${this.javaClass.simpleName} Modified Additive Feed in $elapsed with ${feed.size} objects")

View File

@ -13,6 +13,7 @@ import com.vitorpamplona.amethyst.NotificationCache
import com.vitorpamplona.amethyst.R
import com.vitorpamplona.amethyst.model.Account
import com.vitorpamplona.amethyst.model.Note
import com.vitorpamplona.amethyst.service.model.PrivateDmEvent
import com.vitorpamplona.amethyst.ui.dal.AdditiveFeedFilter
import com.vitorpamplona.amethyst.ui.dal.ChatroomListKnownFeedFilter
import com.vitorpamplona.amethyst.ui.dal.HomeNewThreadFeedFilter
@ -127,17 +128,25 @@ open class LatestItem {
if (newestItem == null) {
newestItemPerAccount = newestItemPerAccount + Pair(
account.userProfile().pubkeyHex,
filter.feed().firstOrNull { it.createdAt() != null }
filterMore(filter.feed()).firstOrNull { it.createdAt() != null }
)
} else {
newestItemPerAccount = newestItemPerAccount + Pair(
account.userProfile().pubkeyHex,
filter.sort(filter.applyFilter(newNotes) + newestItem).first()
filter.sort(filterMore(filter.applyFilter(newNotes)) + newestItem).first()
)
}
return newestItemPerAccount[account.userProfile().pubkeyHex]
}
open fun filterMore(newItems: Set<Note>): Set<Note> {
return newItems
}
open fun filterMore(newItems: List<Note>): List<Note> {
return newItems
}
}
object HomeLatestItem : LatestItem() {
@ -184,6 +193,14 @@ object MessagesLatestItem : LatestItem() {
return (newestItem?.createdAt() ?: 0) > lastTime
}
override fun filterMore(newItems: Set<Note>): Set<Note> {
return newItems.filter { it.event is PrivateDmEvent }.toSet()
}
override fun filterMore(newItems: List<Note>): List<Note> {
return newItems.filter { it.event is PrivateDmEvent }
}
}
fun getRouteWithArguments(navController: NavHostController): String? {