mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2024-09-29 16:30:49 +00:00
Optimizes the UserProfile datasource to remove the filter when the user leaves the profile screen.
This commit is contained in:
parent
dfe95c28ea
commit
53a14d3a77
@ -1,5 +1,6 @@
|
|||||||
package com.vitorpamplona.amethyst.service
|
package com.vitorpamplona.amethyst.service
|
||||||
|
|
||||||
|
import android.util.Log
|
||||||
import com.vitorpamplona.amethyst.model.LocalCache
|
import com.vitorpamplona.amethyst.model.LocalCache
|
||||||
import com.vitorpamplona.amethyst.model.Note
|
import com.vitorpamplona.amethyst.model.Note
|
||||||
import com.vitorpamplona.amethyst.model.User
|
import com.vitorpamplona.amethyst.model.User
|
||||||
@ -17,66 +18,70 @@ object NostrUserProfileDataSource: NostrDataSource("UserProfileFeed") {
|
|||||||
fun loadUserProfile(userId: String?) {
|
fun loadUserProfile(userId: String?) {
|
||||||
if (userId != null) {
|
if (userId != null) {
|
||||||
user = LocalCache.getOrCreateUser(userId)
|
user = LocalCache.getOrCreateUser(userId)
|
||||||
|
} else {
|
||||||
|
user = null
|
||||||
}
|
}
|
||||||
|
|
||||||
resetFilters()
|
resetFilters()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun createUserInfoFilter(): TypedFilter {
|
fun createUserInfoFilter() = user?.let {
|
||||||
return TypedFilter(
|
TypedFilter(
|
||||||
types = FeedType.values().toSet(),
|
types = FeedType.values().toSet(),
|
||||||
filter = JsonFilter(
|
filter = JsonFilter(
|
||||||
kinds = listOf(MetadataEvent.kind),
|
kinds = listOf(MetadataEvent.kind),
|
||||||
authors = listOf(user!!.pubkeyHex),
|
authors = listOf(it.pubkeyHex),
|
||||||
limit = 1
|
limit = 1
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun createUserPostsFilter(): TypedFilter {
|
fun createUserPostsFilter() = user?.let {
|
||||||
return TypedFilter(
|
TypedFilter(
|
||||||
types = FeedType.values().toSet(),
|
types = FeedType.values().toSet(),
|
||||||
filter = JsonFilter(
|
filter = JsonFilter(
|
||||||
kinds = listOf(TextNoteEvent.kind),
|
kinds = listOf(TextNoteEvent.kind),
|
||||||
authors = listOf(user!!.pubkeyHex),
|
authors = listOf(it.pubkeyHex),
|
||||||
limit = 100
|
limit = 100
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun createUserReceivedZapsFilter(): TypedFilter {
|
fun createUserReceivedZapsFilter() = user?.let {
|
||||||
return TypedFilter(
|
TypedFilter(
|
||||||
types = FeedType.values().toSet(),
|
types = FeedType.values().toSet(),
|
||||||
filter = JsonFilter(
|
filter = JsonFilter(
|
||||||
kinds = listOf(LnZapEvent.kind),
|
kinds = listOf(LnZapEvent.kind),
|
||||||
tags = mapOf("p" to listOf(user!!.pubkeyHex))
|
tags = mapOf("p" to listOf(it.pubkeyHex))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun createFollowFilter(): TypedFilter {
|
fun createFollowFilter() = user?.let {
|
||||||
return TypedFilter(
|
TypedFilter(
|
||||||
types = FeedType.values().toSet(),
|
types = FeedType.values().toSet(),
|
||||||
filter = JsonFilter(
|
filter = JsonFilter(
|
||||||
kinds = listOf(ContactListEvent.kind),
|
kinds = listOf(ContactListEvent.kind),
|
||||||
authors = listOf(user!!.pubkeyHex),
|
authors = listOf(it.pubkeyHex),
|
||||||
limit = 1
|
limit = 1
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun createFollowersFilter() = TypedFilter(
|
fun createFollowersFilter() = user?.let {
|
||||||
types = FeedType.values().toSet(),
|
TypedFilter(
|
||||||
filter = JsonFilter(
|
types = FeedType.values().toSet(),
|
||||||
kinds = listOf(ContactListEvent.kind),
|
filter = JsonFilter(
|
||||||
tags = mapOf("p" to listOf(user!!.pubkeyHex))
|
kinds = listOf(ContactListEvent.kind),
|
||||||
|
tags = mapOf("p" to listOf(it.pubkeyHex))
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
}
|
||||||
|
|
||||||
val userInfoChannel = requestNewChannel()
|
val userInfoChannel = requestNewChannel()
|
||||||
|
|
||||||
override fun updateChannelFilters() {
|
override fun updateChannelFilters() {
|
||||||
userInfoChannel.typedFilters = listOf(
|
userInfoChannel.typedFilters = listOfNotNull(
|
||||||
createUserInfoFilter(),
|
createUserInfoFilter(),
|
||||||
createUserPostsFilter(),
|
createUserPostsFilter(),
|
||||||
createFollowFilter(),
|
createFollowFilter(),
|
||||||
|
Loading…
Reference in New Issue
Block a user