Skip to content

Commit 39233e6

Browse files
committed
fulfil edit requirements
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
1 parent a2809d6 commit 39233e6

1 file changed

Lines changed: 24 additions & 0 deletions

File tree

app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -984,6 +984,9 @@ class ChatActivity :
984984

985985
lifecycleScope.launch {
986986
val message = chatViewModel.getMessageById(messageId.toLong()).first()
987+
if (!canEditMarkdownTaskMessage(message)) {
988+
return@launch
989+
}
987990
if (message.isTemporary) {
988991
messageInputViewModel.editTempChatMessage(message, updatedMessage)
989992
} else {
@@ -1002,6 +1005,26 @@ class ChatActivity :
10021005
}
10031006
}
10041007

1008+
private fun canEditMarkdownTaskMessage(message: ChatMessage): Boolean {
1009+
if (message.isTemporary) {
1010+
return true
1011+
}
1012+
val isOlderThanTwentyFourHours = message.createdAt
1013+
.before(Date(System.currentTimeMillis() - AGE_THRESHOLD_FOR_EDIT_MESSAGE))
1014+
if (isOlderThanTwentyFourHours || message.isDeleted) {
1015+
return false
1016+
}
1017+
if (!hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.EDIT_MESSAGES)) {
1018+
return false
1019+
}
1020+
if (message.getCalculateMessageType() != ChatMessage.MessageType.REGULAR_TEXT_MESSAGE) {
1021+
return false
1022+
}
1023+
1024+
return message.actorId == conversationUser?.userId ||
1025+
currentConversation?.let { ConversationUtils.canModerate(it, spreedCapabilities) } == true
1026+
}
1027+
10051028
private fun getMarkdownTaskEditText(message: ChatMessage, updatedMessage: String): String {
10061029
val messageParameters = message.messageParameters ?: return updatedMessage
10071030
var result = updatedMessage
@@ -4061,5 +4084,6 @@ class ChatActivity :
40614084
private const val SEARCH_CENTER_TOLERANCE_PX = 2f
40624085
private const val SEARCH_CENTER_STABILIZE_ATTEMPTS = 8
40634086
private const val SEARCH_CENTER_STABILIZE_DELAY_MS = 200L
4087+
private const val AGE_THRESHOLD_FOR_EDIT_MESSAGE: Long = 86400000
40644088
}
40654089
}

0 commit comments

Comments
 (0)