mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-21 00:59:49 +01:00
Remove some unnecessary transactions in MessageContentProcessor.
This commit is contained in:
@@ -371,8 +371,6 @@ object SyncMessageProcessor {
|
||||
}
|
||||
|
||||
val threadId = SignalDatabase.threads.getOrCreateThreadIdFor(toRecipient)
|
||||
val messageId: Long
|
||||
val attachments: List<DatabaseAttachment>
|
||||
val mediaMessage = OutgoingMessage(
|
||||
recipient = toRecipient,
|
||||
body = message.body ?: "",
|
||||
@@ -389,32 +387,28 @@ object SyncMessageProcessor {
|
||||
messageToEdit = targetMessage.id
|
||||
)
|
||||
|
||||
SignalDatabase.messages.beginTransaction()
|
||||
try {
|
||||
messageId = SignalDatabase.messages.insertMessageOutbox(mediaMessage, threadId, false, GroupReceiptTable.STATUS_UNKNOWN, null)
|
||||
val messageId: Long = SignalDatabase.messages.insertMessageOutbox(mediaMessage, threadId, false, GroupReceiptTable.STATUS_UNKNOWN, null)
|
||||
|
||||
if (toRecipient.isGroup) {
|
||||
updateGroupReceiptStatus(sent, messageId, toRecipient.requireGroupId())
|
||||
} else {
|
||||
SignalDatabase.messages.markUnidentified(messageId, sent.isUnidentified(toRecipient.serviceId.orNull()))
|
||||
}
|
||||
|
||||
SignalDatabase.messages.markAsSent(messageId, true)
|
||||
|
||||
attachments = SignalDatabase.attachments.getAttachmentsForMessage(messageId)
|
||||
|
||||
if (targetMessage.expireStarted > 0) {
|
||||
SignalDatabase.messages.markExpireStarted(messageId, targetMessage.expireStarted)
|
||||
ApplicationDependencies.getExpiringMessageManager().scheduleDeletion(messageId, true, targetMessage.expireStarted, targetMessage.expireStarted)
|
||||
}
|
||||
if (toRecipient.isSelf) {
|
||||
SignalDatabase.messages.incrementDeliveryReceiptCount(sent.timestamp!!, toRecipient.id, System.currentTimeMillis())
|
||||
SignalDatabase.messages.incrementReadReceiptCount(sent.timestamp!!, toRecipient.id, System.currentTimeMillis())
|
||||
}
|
||||
SignalDatabase.messages.setTransactionSuccessful()
|
||||
} finally {
|
||||
SignalDatabase.messages.endTransaction()
|
||||
if (toRecipient.isGroup) {
|
||||
updateGroupReceiptStatus(sent, messageId, toRecipient.requireGroupId())
|
||||
} else {
|
||||
SignalDatabase.messages.markUnidentified(messageId, sent.isUnidentified(toRecipient.serviceId.orNull()))
|
||||
}
|
||||
|
||||
SignalDatabase.messages.markAsSent(messageId, true)
|
||||
|
||||
val attachments: List<DatabaseAttachment> = SignalDatabase.attachments.getAttachmentsForMessage(messageId)
|
||||
|
||||
if (targetMessage.expireStarted > 0) {
|
||||
SignalDatabase.messages.markExpireStarted(messageId, targetMessage.expireStarted)
|
||||
ApplicationDependencies.getExpiringMessageManager().scheduleDeletion(messageId, true, targetMessage.expireStarted, targetMessage.expireStarted)
|
||||
}
|
||||
|
||||
if (toRecipient.isSelf) {
|
||||
SignalDatabase.messages.incrementDeliveryReceiptCount(sent.timestamp!!, toRecipient.id, System.currentTimeMillis())
|
||||
SignalDatabase.messages.incrementReadReceiptCount(sent.timestamp!!, toRecipient.id, System.currentTimeMillis())
|
||||
}
|
||||
|
||||
if (syncAttachments.isNotEmpty()) {
|
||||
SignalDatabase.runPostSuccessfulTransaction {
|
||||
for (attachment in attachments) {
|
||||
@@ -496,35 +490,26 @@ object SyncMessageProcessor {
|
||||
)
|
||||
|
||||
val threadId = SignalDatabase.threads.getOrCreateThreadIdFor(recipient)
|
||||
val messageId: Long
|
||||
val attachments: List<DatabaseAttachment>
|
||||
val messageId: Long = SignalDatabase.messages.insertMessageOutbox(mediaMessage, threadId, false, GroupReceiptTable.STATUS_UNDELIVERED, null)
|
||||
|
||||
SignalDatabase.messages.beginTransaction()
|
||||
try {
|
||||
messageId = SignalDatabase.messages.insertMessageOutbox(mediaMessage, threadId, false, GroupReceiptTable.STATUS_UNDELIVERED, null)
|
||||
|
||||
if (groupId != null) {
|
||||
updateGroupReceiptStatus(sent, messageId, recipient.requireGroupId())
|
||||
} else if (recipient.distributionListId.isPresent) {
|
||||
updateGroupReceiptStatusForDistributionList(sent, messageId, recipient.distributionListId.get())
|
||||
} else {
|
||||
SignalDatabase.messages.markUnidentified(messageId, sent.isUnidentified(recipient.serviceId.orNull()))
|
||||
}
|
||||
|
||||
SignalDatabase.messages.markAsSent(messageId, true)
|
||||
|
||||
val allAttachments = SignalDatabase.attachments.getAttachmentsForMessage(messageId)
|
||||
attachments = allAttachments.filterNot { it.isSticker }
|
||||
|
||||
if (recipient.isSelf) {
|
||||
SignalDatabase.messages.incrementDeliveryReceiptCount(sent.timestamp!!, recipient.id, System.currentTimeMillis())
|
||||
SignalDatabase.messages.incrementReadReceiptCount(sent.timestamp!!, recipient.id, System.currentTimeMillis())
|
||||
}
|
||||
|
||||
SignalDatabase.messages.setTransactionSuccessful()
|
||||
} finally {
|
||||
SignalDatabase.messages.endTransaction()
|
||||
if (groupId != null) {
|
||||
updateGroupReceiptStatus(sent, messageId, recipient.requireGroupId())
|
||||
} else if (recipient.distributionListId.isPresent) {
|
||||
updateGroupReceiptStatusForDistributionList(sent, messageId, recipient.distributionListId.get())
|
||||
} else {
|
||||
SignalDatabase.messages.markUnidentified(messageId, sent.isUnidentified(recipient.serviceId.orNull()))
|
||||
}
|
||||
|
||||
SignalDatabase.messages.markAsSent(messageId, true)
|
||||
|
||||
val allAttachments = SignalDatabase.attachments.getAttachmentsForMessage(messageId)
|
||||
val attachments: List<DatabaseAttachment> = allAttachments.filterNot { it.isSticker }
|
||||
|
||||
if (recipient.isSelf) {
|
||||
SignalDatabase.messages.incrementDeliveryReceiptCount(sent.timestamp!!, recipient.id, System.currentTimeMillis())
|
||||
SignalDatabase.messages.incrementReadReceiptCount(sent.timestamp!!, recipient.id, System.currentTimeMillis())
|
||||
}
|
||||
|
||||
SignalDatabase.runPostSuccessfulTransaction {
|
||||
for (attachment in attachments) {
|
||||
ApplicationDependencies.getJobManager().add(AttachmentDownloadJob(messageId, attachment.attachmentId, false))
|
||||
@@ -718,32 +703,25 @@ object SyncMessageProcessor {
|
||||
}
|
||||
|
||||
val threadId = SignalDatabase.threads.getOrCreateThreadIdFor(recipient)
|
||||
val messageId: Long
|
||||
val messageId: Long = SignalDatabase.messages.insertMessageOutbox(mediaMessage, threadId, false, GroupReceiptTable.STATUS_UNKNOWN, null)
|
||||
|
||||
SignalDatabase.messages.beginTransaction()
|
||||
try {
|
||||
messageId = SignalDatabase.messages.insertMessageOutbox(mediaMessage, threadId, false, GroupReceiptTable.STATUS_UNKNOWN, null)
|
||||
if (recipient.isGroup) {
|
||||
updateGroupReceiptStatus(sent, messageId, recipient.requireGroupId())
|
||||
} else {
|
||||
SignalDatabase.messages.markUnidentified(messageId, sent.isUnidentified(recipient.serviceId.orNull()))
|
||||
}
|
||||
if (recipient.isGroup) {
|
||||
updateGroupReceiptStatus(sent, messageId, recipient.requireGroupId())
|
||||
} else {
|
||||
SignalDatabase.messages.markUnidentified(messageId, sent.isUnidentified(recipient.serviceId.orNull()))
|
||||
}
|
||||
|
||||
SignalDatabase.messages.markAsSent(messageId, true)
|
||||
if (dataMessage.expireTimerDuration > Duration.ZERO) {
|
||||
SignalDatabase.messages.markExpireStarted(messageId, sent.expirationStartTimestamp ?: 0)
|
||||
SignalDatabase.messages.markAsSent(messageId, true)
|
||||
if (dataMessage.expireTimerDuration > Duration.ZERO) {
|
||||
SignalDatabase.messages.markExpireStarted(messageId, sent.expirationStartTimestamp ?: 0)
|
||||
|
||||
ApplicationDependencies
|
||||
.getExpiringMessageManager()
|
||||
.scheduleDeletion(messageId, true, sent.expirationStartTimestamp ?: 0, dataMessage.expireTimerDuration.inWholeMilliseconds)
|
||||
}
|
||||
if (recipient.isSelf) {
|
||||
SignalDatabase.messages.incrementDeliveryReceiptCount(sent.timestamp!!, recipient.id, System.currentTimeMillis())
|
||||
SignalDatabase.messages.incrementReadReceiptCount(sent.timestamp!!, recipient.id, System.currentTimeMillis())
|
||||
}
|
||||
SignalDatabase.messages.setTransactionSuccessful()
|
||||
} finally {
|
||||
SignalDatabase.messages.endTransaction()
|
||||
ApplicationDependencies
|
||||
.getExpiringMessageManager()
|
||||
.scheduleDeletion(messageId, true, sent.expirationStartTimestamp ?: 0, dataMessage.expireTimerDuration.inWholeMilliseconds)
|
||||
}
|
||||
if (recipient.isSelf) {
|
||||
SignalDatabase.messages.incrementDeliveryReceiptCount(sent.timestamp!!, recipient.id, System.currentTimeMillis())
|
||||
SignalDatabase.messages.incrementReadReceiptCount(sent.timestamp!!, recipient.id, System.currentTimeMillis())
|
||||
}
|
||||
|
||||
return threadId
|
||||
@@ -790,36 +768,28 @@ object SyncMessageProcessor {
|
||||
}
|
||||
|
||||
val threadId = SignalDatabase.threads.getOrCreateThreadIdFor(recipient)
|
||||
val messageId: Long
|
||||
val attachments: List<DatabaseAttachment>
|
||||
val messageId: Long = SignalDatabase.messages.insertMessageOutbox(mediaMessage, threadId, false, GroupReceiptTable.STATUS_UNKNOWN, null)
|
||||
|
||||
SignalDatabase.messages.beginTransaction()
|
||||
try {
|
||||
messageId = SignalDatabase.messages.insertMessageOutbox(mediaMessage, threadId, false, GroupReceiptTable.STATUS_UNKNOWN, null)
|
||||
|
||||
if (recipient.isGroup) {
|
||||
updateGroupReceiptStatus(sent, messageId, recipient.requireGroupId())
|
||||
} else {
|
||||
SignalDatabase.messages.markUnidentified(messageId, sent.isUnidentified(recipient.serviceId.orNull()))
|
||||
}
|
||||
|
||||
SignalDatabase.messages.markAsSent(messageId, true)
|
||||
|
||||
attachments = SignalDatabase.attachments.getAttachmentsForMessage(messageId)
|
||||
|
||||
if (dataMessage.expireTimerDuration > Duration.ZERO) {
|
||||
SignalDatabase.messages.markExpireStarted(messageId, sent.expirationStartTimestamp ?: 0)
|
||||
|
||||
ApplicationDependencies.getExpiringMessageManager().scheduleDeletion(messageId, true, sent.expirationStartTimestamp ?: 0, dataMessage.expireTimerDuration.inWholeMilliseconds)
|
||||
}
|
||||
if (recipient.isSelf) {
|
||||
SignalDatabase.messages.incrementDeliveryReceiptCount(sent.timestamp!!, recipient.id, System.currentTimeMillis())
|
||||
SignalDatabase.messages.incrementReadReceiptCount(sent.timestamp!!, recipient.id, System.currentTimeMillis())
|
||||
}
|
||||
SignalDatabase.messages.setTransactionSuccessful()
|
||||
} finally {
|
||||
SignalDatabase.messages.endTransaction()
|
||||
if (recipient.isGroup) {
|
||||
updateGroupReceiptStatus(sent, messageId, recipient.requireGroupId())
|
||||
} else {
|
||||
SignalDatabase.messages.markUnidentified(messageId, sent.isUnidentified(recipient.serviceId.orNull()))
|
||||
}
|
||||
|
||||
SignalDatabase.messages.markAsSent(messageId, true)
|
||||
|
||||
val attachments: List<DatabaseAttachment> = SignalDatabase.attachments.getAttachmentsForMessage(messageId)
|
||||
|
||||
if (dataMessage.expireTimerDuration > Duration.ZERO) {
|
||||
SignalDatabase.messages.markExpireStarted(messageId, sent.expirationStartTimestamp ?: 0)
|
||||
|
||||
ApplicationDependencies.getExpiringMessageManager().scheduleDeletion(messageId, true, sent.expirationStartTimestamp ?: 0, dataMessage.expireTimerDuration.inWholeMilliseconds)
|
||||
}
|
||||
if (recipient.isSelf) {
|
||||
SignalDatabase.messages.incrementDeliveryReceiptCount(sent.timestamp!!, recipient.id, System.currentTimeMillis())
|
||||
SignalDatabase.messages.incrementReadReceiptCount(sent.timestamp!!, recipient.id, System.currentTimeMillis())
|
||||
}
|
||||
|
||||
SignalDatabase.runPostSuccessfulTransaction {
|
||||
val downloadJobs: List<AttachmentDownloadJob> = attachments.map { AttachmentDownloadJob(messageId, it.attachmentId, false) }
|
||||
for (attachment in attachments) {
|
||||
|
||||
Reference in New Issue
Block a user