Log early delivery receipts.

fork-5.53.8
Greyson Parrelli 2022-03-16 15:55:56 -04:00 zatwierdzone przez Cody Henthorne
rodzic f06f0e7ae0
commit b5e0991f5e
2 zmienionych plików z 11 dodań i 5 usunięć

Wyświetl plik

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

Wyświetl plik

@ -2146,7 +2146,13 @@ public final class MessageContentProcessor {
.map(t -> new SyncMessageId(senderRecipient.getId(), t)) .map(t -> new SyncMessageId(senderRecipient.getId(), t))
.toList(); .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()); SignalDatabase.messageLog().deleteEntriesForRecipient(message.getTimestamps(), senderRecipient.getId(), content.getSenderDevice());
} }