Fix UD indicators for sent transcripts.

This commit is contained in:
Greyson Parrelli
2020-04-09 17:45:48 -04:00
parent 7bf090fdab
commit a471ffa6d8
2 changed files with 26 additions and 2 deletions

View File

@@ -966,7 +966,7 @@ public final class PushProcessMessageJob extends BaseJob {
if (recipients.isGroup()) {
updateGroupReceiptStatus(message, messageId, recipients.requireGroupId());
} else {
database.markUnidentified(messageId, message.isUnidentified(recipients.requireServiceId()));
database.markUnidentified(messageId, isUnidentified(message, recipients));
}
database.markAsSent(messageId, true);
@@ -1120,7 +1120,7 @@ public final class PushProcessMessageJob extends BaseJob {
messageId = DatabaseFactory.getSmsDatabase(context).insertMessageOutbox(threadId, outgoingTextMessage, false, message.getTimestamp(), null);
database = DatabaseFactory.getSmsDatabase(context);
database.markUnidentified(messageId, message.isUnidentified(recipient.requireServiceId()));
database.markUnidentified(messageId, isUnidentified(message, recipient));
}
database.markAsSent(messageId, true);
@@ -1595,6 +1595,19 @@ public final class PushProcessMessageJob extends BaseJob {
}
}
private static boolean isUnidentified(@NonNull SentTranscriptMessage message, @NonNull Recipient recipient) {
boolean unidentified = false;
if (recipient.hasE164()) {
unidentified |= message.isUnidentified(recipient.requireE164());
}
if (recipient.hasUuid()) {
unidentified |= message.isUnidentified(recipient.requireUuid());
}
return unidentified;
}
@SuppressWarnings("WeakerAccess")
private static class StorageFailedException extends Exception {
private final String sender;

View File

@@ -447,6 +447,17 @@ public class Recipient {
return Optional.fromNullable(e164).or(Optional.fromNullable(email));
}
public @NonNull UUID requireUuid() {
UUID resolved = resolving ? resolve().uuid : uuid;
if (resolved == null) {
throw new MissingAddressError();
}
return resolved;
}
public @NonNull String requireE164() {
String resolved = resolving ? resolve().e164 : e164;