Remove delay, and implement custom moving function that updates the list in one event, rather than two with the previous approach.
This commit is contained in:
+17
@@ -265,6 +265,23 @@ class LabeledBookmarkListsState(
|
|||||||
account.sendMyPublicAndPrivateOutbox(updatedList)
|
account.sendMyPublicAndPrivateOutbox(updatedList)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
suspend fun moveBookmarkInList(
|
||||||
|
bookmark: BookmarkIdTag,
|
||||||
|
bookmarkListIdentifier: String,
|
||||||
|
isBookmarkCurrentlyPrivate: Boolean,
|
||||||
|
account: Account,
|
||||||
|
) {
|
||||||
|
val bookmarkList = getLabeledBookmarkListEvent(bookmarkListIdentifier)
|
||||||
|
val updatedList =
|
||||||
|
LabeledBookmarkListEvent.moveBookmark(
|
||||||
|
earlierVersion = bookmarkList,
|
||||||
|
bookmarkIdTag = bookmark,
|
||||||
|
isCurrentlyPrivate = isBookmarkCurrentlyPrivate,
|
||||||
|
signer = account.signer,
|
||||||
|
)
|
||||||
|
account.sendMyPublicAndPrivateOutbox(updatedList)
|
||||||
|
}
|
||||||
|
|
||||||
suspend fun removeBookmarkFromList(
|
suspend fun removeBookmarkFromList(
|
||||||
bookmark: BookmarkIdTag,
|
bookmark: BookmarkIdTag,
|
||||||
bookmarkListIdentifier: String,
|
bookmarkListIdentifier: String,
|
||||||
|
|||||||
+6
-4
@@ -29,7 +29,6 @@ import com.vitorpamplona.quartz.nip01Core.core.Address
|
|||||||
import com.vitorpamplona.quartz.nip51Lists.bookmarkList.tags.AddressBookmark
|
import com.vitorpamplona.quartz.nip51Lists.bookmarkList.tags.AddressBookmark
|
||||||
import com.vitorpamplona.quartz.nip51Lists.bookmarkList.tags.BookmarkIdTag
|
import com.vitorpamplona.quartz.nip51Lists.bookmarkList.tags.BookmarkIdTag
|
||||||
import com.vitorpamplona.quartz.nip51Lists.bookmarkList.tags.EventBookmark
|
import com.vitorpamplona.quartz.nip51Lists.bookmarkList.tags.EventBookmark
|
||||||
import kotlinx.coroutines.delay
|
|
||||||
import kotlinx.coroutines.flow.SharingStarted
|
import kotlinx.coroutines.flow.SharingStarted
|
||||||
import kotlinx.coroutines.flow.filterNotNull
|
import kotlinx.coroutines.flow.filterNotNull
|
||||||
import kotlinx.coroutines.flow.map
|
import kotlinx.coroutines.flow.map
|
||||||
@@ -110,9 +109,12 @@ class BookmarkGroupViewModel(
|
|||||||
bookmark: BookmarkIdTag,
|
bookmark: BookmarkIdTag,
|
||||||
isCurrentlyPrivate: Boolean,
|
isCurrentlyPrivate: Boolean,
|
||||||
) {
|
) {
|
||||||
removeBookmarkFromGroup(groupIdentifier, bookmark, isCurrentlyPrivate)
|
account.labeledBookmarkLists.moveBookmarkInList(
|
||||||
delay(1500L)
|
bookmark,
|
||||||
addBookmarkToGroup(groupIdentifier, bookmark, !isCurrentlyPrivate)
|
groupIdentifier,
|
||||||
|
isCurrentlyPrivate,
|
||||||
|
account,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun removePostBookmark(
|
suspend fun removePostBookmark(
|
||||||
|
|||||||
+25
@@ -144,6 +144,31 @@ class LabeledBookmarkListEvent(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
suspend fun moveBookmark(
|
||||||
|
earlierVersion: LabeledBookmarkListEvent,
|
||||||
|
bookmarkIdTag: BookmarkIdTag,
|
||||||
|
isCurrentlyPrivate: Boolean,
|
||||||
|
signer: NostrSigner,
|
||||||
|
createdAt: Long = TimeUtils.now(),
|
||||||
|
): LabeledBookmarkListEvent =
|
||||||
|
if (isCurrentlyPrivate) {
|
||||||
|
val privateTags = earlierVersion.privateTags(signer) ?: throw SignerExceptions.UnauthorizedDecryptionException()
|
||||||
|
resign(
|
||||||
|
privateTags = privateTags.remove(bookmarkIdTag.toTagArray()),
|
||||||
|
tags = earlierVersion.tags.plus(bookmarkIdTag.toTagArray()),
|
||||||
|
signer = signer,
|
||||||
|
createdAt = createdAt,
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
val privateTags = earlierVersion.privateTags(signer) ?: throw SignerExceptions.UnauthorizedDecryptionException()
|
||||||
|
resign(
|
||||||
|
privateTags = privateTags.plus(bookmarkIdTag.toTagArray()),
|
||||||
|
tags = earlierVersion.tags.remove(bookmarkIdTag.toTagArray()),
|
||||||
|
signer = signer,
|
||||||
|
createdAt = createdAt,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
suspend fun removeBookmark(
|
suspend fun removeBookmark(
|
||||||
earlierVersion: LabeledBookmarkListEvent,
|
earlierVersion: LabeledBookmarkListEvent,
|
||||||
bookmarkIdTag: BookmarkIdTag,
|
bookmarkIdTag: BookmarkIdTag,
|
||||||
|
|||||||
Reference in New Issue
Block a user