Bugfix for saving Replaceable notes in Bookmarks.

This commit is contained in:
Vitor Pamplona
2023-05-17 15:47:20 -04:00
parent cbe9462f28
commit 323e71c7cb
2 changed files with 103 additions and 41 deletions
@@ -593,18 +593,33 @@ class Account(
val bookmarks = userProfile().latestBookmarkList val bookmarks = userProfile().latestBookmarkList
val event = BookmarkListEvent.create( val event = if (note is AddressableNote) {
"bookmark", BookmarkListEvent.create(
bookmarks?.taggedEvents() ?: emptyList(), "bookmark",
bookmarks?.taggedUsers() ?: emptyList(), bookmarks?.taggedEvents() ?: emptyList(),
bookmarks?.taggedAddresses() ?: emptyList(), bookmarks?.taggedUsers() ?: emptyList(),
bookmarks?.taggedAddresses() ?: emptyList(),
bookmarks?.privateTaggedEvents(privKey = loggedIn.privKey!!)?.plus(note.idHex) ?: listOf(note.idHex), bookmarks?.privateTaggedEvents(privKey = loggedIn.privKey!!) ?: emptyList(),
bookmarks?.privateTaggedUsers(privKey = loggedIn.privKey!!) ?: emptyList(), bookmarks?.privateTaggedUsers(privKey = loggedIn.privKey!!) ?: emptyList(),
bookmarks?.privateTaggedAddresses(privKey = loggedIn.privKey!!) ?: emptyList(), bookmarks?.privateTaggedAddresses(privKey = loggedIn.privKey!!)?.plus(note.address) ?: listOf(note.address),
loggedIn.privKey!! loggedIn.privKey!!
) )
} else {
BookmarkListEvent.create(
"bookmark",
bookmarks?.taggedEvents() ?: emptyList(),
bookmarks?.taggedUsers() ?: emptyList(),
bookmarks?.taggedAddresses() ?: emptyList(),
bookmarks?.privateTaggedEvents(privKey = loggedIn.privKey!!)?.plus(note.idHex) ?: listOf(note.idHex),
bookmarks?.privateTaggedUsers(privKey = loggedIn.privKey!!) ?: emptyList(),
bookmarks?.privateTaggedAddresses(privKey = loggedIn.privKey!!) ?: emptyList(),
loggedIn.privKey!!
)
}
Client.send(event) Client.send(event)
LocalCache.consume(event) LocalCache.consume(event)
@@ -615,18 +630,33 @@ class Account(
val bookmarks = userProfile().latestBookmarkList val bookmarks = userProfile().latestBookmarkList
val event = BookmarkListEvent.create( val event = if (note is AddressableNote) {
"bookmark", BookmarkListEvent.create(
bookmarks?.taggedEvents()?.plus(note.idHex) ?: listOf(note.idHex), "bookmark",
bookmarks?.taggedUsers() ?: emptyList(), bookmarks?.taggedEvents() ?: emptyList(),
bookmarks?.taggedAddresses() ?: emptyList(), bookmarks?.taggedUsers() ?: emptyList(),
bookmarks?.taggedAddresses()?.plus(note.address) ?: listOf(note.address),
bookmarks?.privateTaggedEvents(privKey = loggedIn.privKey!!) ?: emptyList(), bookmarks?.privateTaggedEvents(privKey = loggedIn.privKey!!) ?: emptyList(),
bookmarks?.privateTaggedUsers(privKey = loggedIn.privKey!!) ?: emptyList(), bookmarks?.privateTaggedUsers(privKey = loggedIn.privKey!!) ?: emptyList(),
bookmarks?.privateTaggedAddresses(privKey = loggedIn.privKey!!) ?: emptyList(), bookmarks?.privateTaggedAddresses(privKey = loggedIn.privKey!!) ?: emptyList(),
loggedIn.privKey!! loggedIn.privKey!!
) )
} else {
BookmarkListEvent.create(
"bookmark",
bookmarks?.taggedEvents()?.plus(note.idHex) ?: listOf(note.idHex),
bookmarks?.taggedUsers() ?: emptyList(),
bookmarks?.taggedAddresses() ?: emptyList(),
bookmarks?.privateTaggedEvents(privKey = loggedIn.privKey!!) ?: emptyList(),
bookmarks?.privateTaggedUsers(privKey = loggedIn.privKey!!) ?: emptyList(),
bookmarks?.privateTaggedAddresses(privKey = loggedIn.privKey!!) ?: emptyList(),
loggedIn.privKey!!
)
}
Client.send(event) Client.send(event)
LocalCache.consume(event) LocalCache.consume(event)
@@ -637,18 +667,33 @@ class Account(
val bookmarks = userProfile().latestBookmarkList val bookmarks = userProfile().latestBookmarkList
val event = BookmarkListEvent.create( val event = if (note is AddressableNote) {
"bookmark", BookmarkListEvent.create(
bookmarks?.taggedEvents() ?: emptyList(), "bookmark",
bookmarks?.taggedUsers() ?: emptyList(), bookmarks?.taggedEvents() ?: emptyList(),
bookmarks?.taggedAddresses() ?: emptyList(), bookmarks?.taggedUsers() ?: emptyList(),
bookmarks?.taggedAddresses() ?: emptyList(),
bookmarks?.privateTaggedEvents(privKey = loggedIn.privKey!!)?.minus(note.idHex) ?: listOf(), bookmarks?.privateTaggedEvents(privKey = loggedIn.privKey!!) ?: emptyList(),
bookmarks?.privateTaggedUsers(privKey = loggedIn.privKey!!) ?: emptyList(), bookmarks?.privateTaggedUsers(privKey = loggedIn.privKey!!) ?: emptyList(),
bookmarks?.privateTaggedAddresses(privKey = loggedIn.privKey!!) ?: emptyList(), bookmarks?.privateTaggedAddresses(privKey = loggedIn.privKey!!)?.minus(note.address) ?: listOf(),
loggedIn.privKey!! loggedIn.privKey!!
) )
} else {
BookmarkListEvent.create(
"bookmark",
bookmarks?.taggedEvents() ?: emptyList(),
bookmarks?.taggedUsers() ?: emptyList(),
bookmarks?.taggedAddresses() ?: emptyList(),
bookmarks?.privateTaggedEvents(privKey = loggedIn.privKey!!)?.minus(note.idHex) ?: listOf(),
bookmarks?.privateTaggedUsers(privKey = loggedIn.privKey!!) ?: emptyList(),
bookmarks?.privateTaggedAddresses(privKey = loggedIn.privKey!!) ?: emptyList(),
loggedIn.privKey!!
)
}
Client.send(event) Client.send(event)
LocalCache.consume(event) LocalCache.consume(event)
@@ -665,18 +710,33 @@ class Account(
val bookmarks = userProfile().latestBookmarkList val bookmarks = userProfile().latestBookmarkList
val event = BookmarkListEvent.create( val event = if (note is AddressableNote) {
"bookmark", BookmarkListEvent.create(
bookmarks?.taggedEvents()?.minus(note.idHex), "bookmark",
bookmarks?.taggedUsers() ?: emptyList(), bookmarks?.taggedEvents() ?: emptyList(),
bookmarks?.taggedAddresses() ?: emptyList(), bookmarks?.taggedUsers() ?: emptyList(),
bookmarks?.taggedAddresses()?.minus(note.address),
bookmarks?.privateTaggedEvents(privKey = loggedIn.privKey!!) ?: emptyList(), bookmarks?.privateTaggedEvents(privKey = loggedIn.privKey!!) ?: emptyList(),
bookmarks?.privateTaggedUsers(privKey = loggedIn.privKey!!) ?: emptyList(), bookmarks?.privateTaggedUsers(privKey = loggedIn.privKey!!) ?: emptyList(),
bookmarks?.privateTaggedAddresses(privKey = loggedIn.privKey!!) ?: emptyList(), bookmarks?.privateTaggedAddresses(privKey = loggedIn.privKey!!) ?: emptyList(),
loggedIn.privKey!! loggedIn.privKey!!
) )
} else {
BookmarkListEvent.create(
"bookmark",
bookmarks?.taggedEvents()?.minus(note.idHex),
bookmarks?.taggedUsers() ?: emptyList(),
bookmarks?.taggedAddresses() ?: emptyList(),
bookmarks?.privateTaggedEvents(privKey = loggedIn.privKey!!) ?: emptyList(),
bookmarks?.privateTaggedUsers(privKey = loggedIn.privKey!!) ?: emptyList(),
bookmarks?.privateTaggedAddresses(privKey = loggedIn.privKey!!) ?: emptyList(),
loggedIn.privKey!!
)
}
Client.send(event) Client.send(event)
LocalCache.consume(event) LocalCache.consume(event)
@@ -2183,13 +2183,15 @@ fun NoteDropDownMenu(note: Note, popupExpanded: Boolean, onDismiss: () -> Unit,
val actContext = LocalContext.current val actContext = LocalContext.current
var reportDialogShowing by remember { mutableStateOf(false) } var reportDialogShowing by remember { mutableStateOf(false) }
val bookmarkState by accountViewModel.userProfile().live().bookmarks.observeAsState()
var state by remember { var state by remember {
mutableStateOf<DropDownParams>( mutableStateOf<DropDownParams>(
DropDownParams(false, false, false, false) DropDownParams(false, false, false, false)
) )
} }
LaunchedEffect(key1 = note) { LaunchedEffect(key1 = note, key2 = bookmarkState) {
withContext(Dispatchers.IO) { withContext(Dispatchers.IO) {
state = DropDownParams( state = DropDownParams(
accountViewModel.isFollowing(note.author), accountViewModel.isFollowing(note.author),