mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2025-09-25 13:21:54 +02:00
Locally cache following Users in the Home & Conversations filter
This commit is contained in:
@@ -11,13 +11,14 @@ object HomeConversationsFeedFilter : FeedFilter<Note>() {
|
|||||||
|
|
||||||
override fun feed(): List<Note> {
|
override fun feed(): List<Note> {
|
||||||
val user = account.userProfile()
|
val user = account.userProfile()
|
||||||
|
val followingKeySet = user.cachedFollowingKeySet()
|
||||||
|
|
||||||
return LocalCache.notes.values
|
return LocalCache.notes.values
|
||||||
.filter {
|
.filter {
|
||||||
(it.event is TextNoteEvent || it.event is RepostEvent) &&
|
(it.event is TextNoteEvent || it.event is RepostEvent) &&
|
||||||
it.author?.pubkeyHex in user.cachedFollowingKeySet() &&
|
it.author?.pubkeyHex in followingKeySet &&
|
||||||
// && account.isAcceptable(it) // This filter follows only. No need to check if acceptable
|
// && account.isAcceptable(it) // This filter follows only. No need to check if acceptable
|
||||||
it.author?.let { !HomeNewThreadFeedFilter.account.isHidden(it) } ?: true &&
|
it.author?.let { !account.isHidden(it) } ?: true &&
|
||||||
!it.isNewThread()
|
!it.isNewThread()
|
||||||
}
|
}
|
||||||
.sortedBy { it.createdAt() }
|
.sortedBy { it.createdAt() }
|
||||||
|
@@ -12,11 +12,12 @@ object HomeNewThreadFeedFilter : FeedFilter<Note>() {
|
|||||||
|
|
||||||
override fun feed(): List<Note> {
|
override fun feed(): List<Note> {
|
||||||
val user = account.userProfile()
|
val user = account.userProfile()
|
||||||
|
val followingKeySet = user.cachedFollowingKeySet()
|
||||||
|
|
||||||
val notes = LocalCache.notes.values
|
val notes = LocalCache.notes.values
|
||||||
.filter { it ->
|
.filter { it ->
|
||||||
(it.event is TextNoteEvent || it.event is RepostEvent || it.event is LongTextNoteEvent) &&
|
(it.event is TextNoteEvent || it.event is RepostEvent || it.event is LongTextNoteEvent) &&
|
||||||
it.author?.pubkeyHex in user.cachedFollowingKeySet() &&
|
it.author?.pubkeyHex in followingKeySet &&
|
||||||
// && account.isAcceptable(it) // This filter follows only. No need to check if acceptable
|
// && account.isAcceptable(it) // This filter follows only. No need to check if acceptable
|
||||||
it.author?.let { !account.isHidden(it) } ?: true &&
|
it.author?.let { !account.isHidden(it) } ?: true &&
|
||||||
it.isNewThread()
|
it.isNewThread()
|
||||||
@@ -25,7 +26,7 @@ object HomeNewThreadFeedFilter : FeedFilter<Note>() {
|
|||||||
val longFormNotes = LocalCache.addressables.values
|
val longFormNotes = LocalCache.addressables.values
|
||||||
.filter { it ->
|
.filter { it ->
|
||||||
(it.event is TextNoteEvent || it.event is RepostEvent || it.event is LongTextNoteEvent) &&
|
(it.event is TextNoteEvent || it.event is RepostEvent || it.event is LongTextNoteEvent) &&
|
||||||
it.author?.pubkeyHex in user.cachedFollowingKeySet() &&
|
it.author?.pubkeyHex in followingKeySet &&
|
||||||
// && account.isAcceptable(it) // This filter follows only. No need to check if acceptable
|
// && account.isAcceptable(it) // This filter follows only. No need to check if acceptable
|
||||||
it.author?.let { !account.isHidden(it) } ?: true &&
|
it.author?.let { !account.isHidden(it) } ?: true &&
|
||||||
it.isNewThread()
|
it.isNewThread()
|
||||||
|
Reference in New Issue
Block a user