Log early delivery receipts.

This commit is contained in:
Greyson Parrelli 2022-03-16 15:55:56 -04:00 committed by Cody Henthorne
parent f06f0e7ae0
commit b5e0991f5e
2 changed files with 11 additions and 5 deletions

View file

@ -371,12 +371,12 @@ public class MmsSmsDatabase extends Database {
else return id;
}
public void incrementDeliveryReceiptCounts(@NonNull List<SyncMessageId> syncMessageIds, long timestamp) {
incrementReceiptCounts(syncMessageIds, timestamp, MessageDatabase.ReceiptType.DELIVERY);
public Collection<SyncMessageId> incrementDeliveryReceiptCounts(@NonNull List<SyncMessageId> 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);
}
/**

View file

@ -2146,7 +2146,13 @@ public final class MessageContentProcessor {
.map(t -> new SyncMessageId(senderRecipient.getId(), t))
.toList();
SignalDatabase.mmsSms().incrementDeliveryReceiptCounts(ids, System.currentTimeMillis());
Collection<SyncMessageId> 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());
}