From b5e0991f5e4e816f9d00d0217b83d828ad4876cc Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Wed, 16 Mar 2022 15:55:56 -0400 Subject: [PATCH] Log early delivery receipts. --- .../thoughtcrime/securesms/database/MmsSmsDatabase.java | 8 ++++---- .../securesms/messages/MessageContentProcessor.java | 8 +++++++- 2 files changed, 11 insertions(+), 5 deletions(-) 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()); }