Fixes missing context in some replies to blog posts.
This commit is contained in:
@@ -751,11 +751,13 @@ private fun ReplyRow(
|
|||||||
val replyingDirectlyTo =
|
val replyingDirectlyTo =
|
||||||
remember(note) {
|
remember(note) {
|
||||||
if (noteEvent is BaseTextNoteEvent) {
|
if (noteEvent is BaseTextNoteEvent) {
|
||||||
val replyingTo = noteEvent.replyingTo()
|
val replyingTo = noteEvent.replyingToAddressOrEvent()
|
||||||
if (replyingTo != null) {
|
if (replyingTo != null) {
|
||||||
note.replyTo?.firstOrNull {
|
val newNote = accountViewModel.getNoteIfExists(replyingTo)
|
||||||
// important to test both ids in case it's a replaceable event.
|
if (newNote != null && newNote.channelHex() == null && newNote.event?.kind() != CommunityDefinitionEvent.KIND) {
|
||||||
it.idHex == replyingTo || it.event?.id() == replyingTo
|
newNote
|
||||||
|
} else {
|
||||||
|
note.replyTo?.lastOrNull { it.event?.kind() != CommunityDefinitionEvent.KIND }
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
note.replyTo?.lastOrNull { it.event?.kind() != CommunityDefinitionEvent.KIND }
|
note.replyTo?.lastOrNull { it.event?.kind() != CommunityDefinitionEvent.KIND }
|
||||||
|
|||||||
@@ -79,6 +79,22 @@ open class BaseTextNoteEvent(
|
|||||||
return newStyleReply ?: newStyleRoot ?: oldStylePositional
|
return newStyleReply ?: newStyleRoot ?: oldStylePositional
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun replyingToAddress(): ATag? {
|
||||||
|
val oldStylePositional = tags.lastOrNull { it.size > 1 && it[0] == "a" }?.let { ATag.parseAtag(it[1], it[2]) }
|
||||||
|
val newStyleReply = tags.lastOrNull { it.size > 3 && it[0] == "a" && it[3] == "reply" }?.let { ATag.parseAtag(it[1], it[2]) }
|
||||||
|
val newStyleRoot = tags.lastOrNull { it.size > 3 && it[0] == "a" && it[3] == "root" }?.let { ATag.parseAtag(it[1], it[2]) }
|
||||||
|
|
||||||
|
return newStyleReply ?: newStyleRoot ?: oldStylePositional
|
||||||
|
}
|
||||||
|
|
||||||
|
fun replyingToAddressOrEvent(): String? {
|
||||||
|
val oldStylePositional = tags.lastOrNull { it.size > 1 && (it[0] == "e" || it[0] == "a") }?.get(1)
|
||||||
|
val newStyleReply = tags.lastOrNull { it.size > 3 && (it[0] == "e" || it[0] == "a") && it[3] == "reply" }?.get(1)
|
||||||
|
val newStyleRoot = tags.lastOrNull { it.size > 3 && (it[0] == "e" || it[0] == "a") && it[3] == "root" }?.get(1)
|
||||||
|
|
||||||
|
return newStyleReply ?: newStyleRoot ?: oldStylePositional
|
||||||
|
}
|
||||||
|
|
||||||
@Transient private var citedUsersCache: Set<String>? = null
|
@Transient private var citedUsersCache: Set<String>? = null
|
||||||
|
|
||||||
@Transient private var citedNotesCache: Set<String>? = null
|
@Transient private var citedNotesCache: Set<String>? = null
|
||||||
|
|||||||
Reference in New Issue
Block a user