Generalise the implementation of PeopleListEvent.removeTag() to also support public list events. Use defaults in already dependent code.
This commit is contained in:
@@ -3125,6 +3125,8 @@ class Account(
|
||||
PeopleListEvent.removeWord(
|
||||
earlierVersion = blockList,
|
||||
word = word,
|
||||
// It is true here, since PeopleListEvent.removeTag(..) defaulted to private tags.
|
||||
isPrivate = true,
|
||||
signer = signer,
|
||||
) {
|
||||
Amethyst.instance.client.send(it)
|
||||
@@ -3178,6 +3180,8 @@ class Account(
|
||||
PeopleListEvent.removeUser(
|
||||
earlierVersion = blockList,
|
||||
pubKeyHex = pubkeyHex,
|
||||
// Reason: refer to showWord(..) above.
|
||||
isPrivate = true,
|
||||
signer = signer,
|
||||
) {
|
||||
Amethyst.instance.client.send(it)
|
||||
|
||||
@@ -270,46 +270,62 @@ class PeopleListEvent(
|
||||
fun removeWord(
|
||||
earlierVersion: PeopleListEvent,
|
||||
word: String,
|
||||
isPrivate: Boolean,
|
||||
signer: NostrSigner,
|
||||
createdAt: Long = TimeUtils.now(),
|
||||
onReady: (PeopleListEvent) -> Unit,
|
||||
) = removeTag(earlierVersion, "word", word, signer, createdAt, onReady)
|
||||
) = removeTag(earlierVersion, "word", word, isPrivate, signer, createdAt, onReady)
|
||||
|
||||
fun removeUser(
|
||||
earlierVersion: PeopleListEvent,
|
||||
pubKeyHex: String,
|
||||
isPrivate: Boolean,
|
||||
signer: NostrSigner,
|
||||
createdAt: Long = TimeUtils.now(),
|
||||
onReady: (PeopleListEvent) -> Unit,
|
||||
) = removeTag(earlierVersion, "p", pubKeyHex, signer, createdAt, onReady)
|
||||
) = removeTag(earlierVersion, "p", pubKeyHex, isPrivate, signer, createdAt, onReady)
|
||||
|
||||
fun removeTag(
|
||||
earlierVersion: PeopleListEvent,
|
||||
key: String,
|
||||
tag: String,
|
||||
isPrivate: Boolean,
|
||||
signer: NostrSigner,
|
||||
createdAt: Long = TimeUtils.now(),
|
||||
onReady: (PeopleListEvent) -> Unit,
|
||||
) {
|
||||
earlierVersion.privateTagsOrEmpty(signer) { privateTags ->
|
||||
encryptTags(
|
||||
privateTags =
|
||||
privateTags
|
||||
.filter { it.size > 1 && !(it[0] == key && it[1] == tag) }
|
||||
.toTypedArray(),
|
||||
signer = signer,
|
||||
) { encryptedTags ->
|
||||
create(
|
||||
content = encryptedTags,
|
||||
tags =
|
||||
earlierVersion.tags
|
||||
if (isPrivate) {
|
||||
earlierVersion.privateTagsOrEmpty(signer) { privateTags ->
|
||||
encryptTags(
|
||||
privateTags =
|
||||
privateTags
|
||||
.filter { it.size > 1 && !(it[0] == key && it[1] == tag) }
|
||||
.toTypedArray(),
|
||||
signer = signer,
|
||||
createdAt = createdAt,
|
||||
onReady = onReady,
|
||||
)
|
||||
) { encryptedTags ->
|
||||
create(
|
||||
content = encryptedTags,
|
||||
tags =
|
||||
earlierVersion.tags
|
||||
.filter { it.size > 1 && !(it[0] == key && it[1] == tag) }
|
||||
.toTypedArray(),
|
||||
signer = signer,
|
||||
createdAt = createdAt,
|
||||
onReady = onReady,
|
||||
)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
create(
|
||||
content = earlierVersion.content,
|
||||
tags =
|
||||
earlierVersion.tags
|
||||
.filter { it.size > 1 && !(it[0] == key && it[1] == tag) }
|
||||
.toTypedArray(),
|
||||
signer,
|
||||
createdAt,
|
||||
onReady,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user