diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/MmsSmsDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/MmsSmsDatabase.java index 341a652c0d..b82ee6c486 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/MmsSmsDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/MmsSmsDatabase.java @@ -371,12 +371,12 @@ public class MmsSmsDatabase extends Database { else return id; } - public void incrementDeliveryReceiptCounts(@NonNull List syncMessageIds, long timestamp) { - incrementReceiptCounts(syncMessageIds, timestamp, MessageDatabase.ReceiptType.DELIVERY); + public Collection incrementDeliveryReceiptCounts(@NonNull List syncMessageIds, long timestamp) { + return incrementReceiptCounts(syncMessageIds, timestamp, MessageDatabase.ReceiptType.DELIVERY); } - public void incrementDeliveryReceiptCount(SyncMessageId syncMessageId, long timestamp) { - incrementReceiptCount(syncMessageId, timestamp, MessageDatabase.ReceiptType.DELIVERY); + public boolean incrementDeliveryReceiptCount(SyncMessageId syncMessageId, long timestamp) { + return incrementReceiptCount(syncMessageId, timestamp, MessageDatabase.ReceiptType.DELIVERY); } /** diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.java index 52bbde7fc0..68e1e9472c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.java @@ -2146,7 +2146,13 @@ public final class MessageContentProcessor { .map(t -> new SyncMessageId(senderRecipient.getId(), t)) .toList(); - SignalDatabase.mmsSms().incrementDeliveryReceiptCounts(ids, System.currentTimeMillis()); + Collection unhandled = SignalDatabase.mmsSms().incrementDeliveryReceiptCounts(ids, System.currentTimeMillis()); + + for (SyncMessageId id : unhandled) { + warn(String.valueOf(content.getTimestamp()), "[handleDeliveryReceipt] Could not find matching message! timestamp: " + id.getTimetamp() + " author: " + senderRecipient.getId()); + // Early delivery receipts are special-cased in the database methods + } + SignalDatabase.messageLog().deleteEntriesForRecipient(message.getTimestamps(), senderRecipient.getId(), content.getSenderDevice()); }