Proper way to determine if a message is a control message
pull/1710/head
ThomasSession 2 months ago
parent c35930c408
commit 947bae2a25

@ -547,7 +547,7 @@ class ConversationReactionOverlay : FrameLayout {
val items: MutableList<ActionItem> = ArrayList()
// Prepare
val containsControlMessage = message.isUpdate
val containsControlMessage = message.isControlMessage
val hasText = !message.body.isEmpty()
val openGroup = lokiThreadDatabase.getOpenGroupChat(message.threadId)
val userPublicKey = textSecurePreferences.getLocalNumber()!!
@ -556,7 +556,7 @@ class ConversationReactionOverlay : FrameLayout {
deprecationManager.isDeprecated
// control messages and "marked as deleted" messages can only delete
val isDeleteOnly = message.isDeleted || message.isControlMessage
val isDeleteOnly = message.isDeleted || containsControlMessage
// Select message
if(!isDeleteOnly && !isDeprecatedLegacyGroup) {

@ -35,7 +35,7 @@ class ConversationActionModeCallback(
fun updateActionModeMenu(menu: Menu) {
// Prepare
val selectedItems = adapter.selectedItems
val containsControlMessage = selectedItems.any { it.isUpdate }
val containsControlMessage = selectedItems.any { it.isControlMessage }
val hasText = selectedItems.any { it.body.isNotEmpty() }
if (selectedItems.isEmpty()) { return }
val firstMessage = selectedItems.iterator().next()

@ -389,14 +389,14 @@ class VisibleMessageView : FrameLayout {
}
private fun isStartOfMessageCluster(current: MessageRecord, previous: MessageRecord?, isGroupThread: Boolean): Boolean =
previous == null || previous.isUpdate || !DateUtils.isSameHour(current.timestamp, previous.timestamp) || if (isGroupThread) {
previous == null || previous.isControlMessage || !DateUtils.isSameHour(current.timestamp, previous.timestamp) || if (isGroupThread) {
current.recipient.address != previous.recipient.address
} else {
current.isOutgoing != previous.isOutgoing
}
private fun isEndOfMessageCluster(current: MessageRecord, next: MessageRecord?, isGroupThread: Boolean): Boolean =
next == null || next.isUpdate || !DateUtils.isSameHour(current.timestamp, next.timestamp) || if (isGroupThread) {
next == null || next.isControlMessage || !DateUtils.isSameHour(current.timestamp, next.timestamp) || if (isGroupThread) {
current.recipient.address != next.recipient.address
} else {
current.isOutgoing != next.isOutgoing

@ -118,10 +118,6 @@ public abstract class MessageRecord extends DisplayRecord {
return false;
}
public boolean isUpdate() {
return isExpirationTimerUpdate() || isCallLog() || isDataExtractionNotification();
}
/**
* @return Decoded group update message. Only valid if the message is a group update message.
*/

Loading…
Cancel
Save