diff --git a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java index f87c792ac4..38082bf4d4 100644 --- a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java +++ b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java @@ -681,11 +681,6 @@ public class SignalServiceMessageSender { .setRemove(message.getReaction().get().isRemove()) .setTargetSentTimestamp(message.getReaction().get().getTargetSentTimestamp()); - // TODO [Alan] PhoneNumberPrivacy: Do not set this number - if (message.getReaction().get().getTargetAuthor().getNumber().isPresent()) { - reactionBuilder.setTargetAuthorE164(message.getReaction().get().getTargetAuthor().getNumber().get()); - } - if (message.getReaction().get().getTargetAuthor().getUuid().isPresent()) { reactionBuilder.setTargetAuthorUuid(message.getReaction().get().getTargetAuthor().getUuid().get().toString()); } diff --git a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceContent.java b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceContent.java index 769c46bd3e..0e755442ce 100644 --- a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceContent.java +++ b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceContent.java @@ -49,6 +49,7 @@ import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.UUID; import static org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext.Type.DELIVER; @@ -745,19 +746,25 @@ public final class SignalServiceContent { } private static SignalServiceDataMessage.Reaction createReaction(SignalServiceProtos.DataMessage content) { - if (!content.hasReaction() || - !content.getReaction().hasEmoji() || - !(content.getReaction().hasTargetAuthorE164() || content.getReaction().hasTargetAuthorUuid()) || + if (!content.hasReaction() || + !content.getReaction().hasEmoji() || + !content.getReaction().hasTargetAuthorUuid() || !content.getReaction().hasTargetSentTimestamp()) { return null; } SignalServiceProtos.DataMessage.Reaction reaction = content.getReaction(); + UUID uuid = UuidUtil.parseOrNull(reaction.getTargetAuthorUuid()); + + if (uuid == null) { + Log.w(TAG, "Cannot parse author UUID on reaction"); + return null; + } return new SignalServiceDataMessage.Reaction(reaction.getEmoji(), reaction.getRemove(), - new SignalServiceAddress(UuidUtil.parseOrNull(reaction.getTargetAuthorUuid()), reaction.getTargetAuthorE164()), + new SignalServiceAddress(uuid, null), reaction.getTargetSentTimestamp()); } diff --git a/libsignal/service/src/main/proto/SignalService.proto b/libsignal/service/src/main/proto/SignalService.proto index 4ad684da01..a52a727008 100644 --- a/libsignal/service/src/main/proto/SignalService.proto +++ b/libsignal/service/src/main/proto/SignalService.proto @@ -221,7 +221,7 @@ message DataMessage { message Reaction { optional string emoji = 1; optional bool remove = 2; - optional string targetAuthorE164 = 3; + // optional string targetAuthorE164 = 3; optional string targetAuthorUuid = 4; optional uint64 targetSentTimestamp = 5; }