mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-25 05:27:42 +00:00
Require ACI for ReadMessage sender field.
This commit is contained in:
committed by
Cody Henthorne
parent
cbc547d322
commit
3f7b73cf5e
@@ -20,11 +20,11 @@ import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
import org.thoughtcrime.securesms.recipients.RecipientId;
|
||||
import org.thoughtcrime.securesms.recipients.RecipientUtil;
|
||||
import org.thoughtcrime.securesms.util.JsonUtils;
|
||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||
import org.whispersystems.signalservice.api.SignalServiceMessageSender;
|
||||
import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException;
|
||||
import org.whispersystems.signalservice.api.messages.multidevice.ReadMessage;
|
||||
import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage;
|
||||
import org.whispersystems.signalservice.api.push.ServiceId;
|
||||
import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException;
|
||||
import org.whispersystems.signalservice.api.push.exceptions.ServerRejectedException;
|
||||
|
||||
@@ -116,7 +116,12 @@ public class MultiDeviceReadUpdateJob extends BaseJob {
|
||||
for (SerializableSyncMessageId messageId : messageIds) {
|
||||
Recipient recipient = Recipient.resolved(RecipientId.from(messageId.recipientId));
|
||||
if (!recipient.isGroup() && !recipient.isDistributionList() && recipient.isMaybeRegistered() && (recipient.getHasServiceId() || recipient.getHasE164())) {
|
||||
readMessages.add(new ReadMessage(RecipientUtil.getOrFetchServiceId(context, recipient), messageId.timestamp));
|
||||
ServiceId senderAci = RecipientUtil.getOrFetchServiceId(context, recipient);
|
||||
if (senderAci instanceof ServiceId.ACI) {
|
||||
readMessages.add(new ReadMessage((ServiceId.ACI) senderAci, messageId.timestamp));
|
||||
} else {
|
||||
Log.w(TAG, "Failed to add ReadMessage for sender without an ACI! { recipientId: " + messageId.recipientId + ", timestamp: " + messageId.timestamp + " }");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1459,7 +1459,7 @@ public class SignalServiceMessageSender {
|
||||
readMessages.stream()
|
||||
.map(readMessage -> new SyncMessage.Read.Builder()
|
||||
.timestamp(readMessage.getTimestamp())
|
||||
.senderAci(readMessage.getSender().toString())
|
||||
.senderAci(readMessage.getSenderAci().toString())
|
||||
.build())
|
||||
.collect(Collectors.toList())
|
||||
);
|
||||
|
||||
@@ -10,10 +10,10 @@ import org.whispersystems.signalservice.api.push.ServiceId;
|
||||
|
||||
public class ReadMessage {
|
||||
|
||||
private final ServiceId sender;
|
||||
private final long timestamp;
|
||||
private final ServiceId.ACI sender;
|
||||
private final long timestamp;
|
||||
|
||||
public ReadMessage(ServiceId sender, long timestamp) {
|
||||
public ReadMessage(ServiceId.ACI sender, long timestamp) {
|
||||
this.sender = sender;
|
||||
this.timestamp = timestamp;
|
||||
}
|
||||
@@ -22,7 +22,7 @@ public class ReadMessage {
|
||||
return timestamp;
|
||||
}
|
||||
|
||||
public ServiceId getSender() {
|
||||
public ServiceId.ACI getSenderAci() {
|
||||
return sender;
|
||||
}
|
||||
|
||||
|
||||
@@ -5,8 +5,7 @@ import okio.ByteString.Companion.toByteString
|
||||
import org.signal.libsignal.protocol.ServiceId.InvalidServiceIdException
|
||||
import org.signal.libsignal.protocol.SignalProtocolAddress
|
||||
import org.signal.libsignal.protocol.logging.Log
|
||||
import org.whispersystems.signalservice.api.push.ServiceId.ACI
|
||||
import org.whispersystems.signalservice.api.push.ServiceId.PNI
|
||||
import org.whispersystems.signalservice.api.push.ServiceId.Companion.parseOrThrow
|
||||
import org.whispersystems.signalservice.api.util.UuidUtil
|
||||
import org.whispersystems.signalservice.api.util.toByteArray
|
||||
import java.util.UUID
|
||||
|
||||
Reference in New Issue
Block a user