kopia lustrzana https://github.com/ryukoposting/Signal-Android
Properly set the isRecipientUpdate flag on story sends.
rodzic
855d74bbbf
commit
92201dcd90
|
@ -636,7 +636,7 @@ public final class GroupSendUtil {
|
||||||
boolean isRecipientUpdate)
|
boolean isRecipientUpdate)
|
||||||
throws NoSessionException, UntrustedIdentityException, InvalidKeyException, IOException, InvalidRegistrationIdException
|
throws NoSessionException, UntrustedIdentityException, InvalidKeyException, IOException, InvalidRegistrationIdException
|
||||||
{
|
{
|
||||||
return messageSender.sendGroupStory(distributionId, Optional.ofNullable(groupId).map(GroupId::getDecodedId), targets, access, message, getSentTimestamp(), manifest);
|
return messageSender.sendGroupStory(distributionId, Optional.ofNullable(groupId).map(GroupId::getDecodedId), targets, access, isRecipientUpdate, message, getSentTimestamp(), manifest);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -648,7 +648,7 @@ public final class GroupSendUtil {
|
||||||
@Nullable CancelationSignal cancelationSignal)
|
@Nullable CancelationSignal cancelationSignal)
|
||||||
throws IOException, UntrustedIdentityException
|
throws IOException, UntrustedIdentityException
|
||||||
{
|
{
|
||||||
return messageSender.sendStory(targets, access, message, getSentTimestamp(), manifest);
|
return messageSender.sendStory(targets, access, isRecipientUpdate, message, getSentTimestamp(), manifest);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -252,6 +252,7 @@ public class SignalServiceMessageSender {
|
||||||
|
|
||||||
public List<SendMessageResult> sendStory(List<SignalServiceAddress> recipients,
|
public List<SendMessageResult> sendStory(List<SignalServiceAddress> recipients,
|
||||||
List<Optional<UnidentifiedAccessPair>> unidentifiedAccess,
|
List<Optional<UnidentifiedAccessPair>> unidentifiedAccess,
|
||||||
|
boolean isRecipientUpdate,
|
||||||
SignalServiceStoryMessage message,
|
SignalServiceStoryMessage message,
|
||||||
long timestamp,
|
long timestamp,
|
||||||
Set<SignalServiceStoryMessageRecipient> manifest)
|
Set<SignalServiceStoryMessageRecipient> manifest)
|
||||||
|
@ -260,21 +261,23 @@ public class SignalServiceMessageSender {
|
||||||
Content content = createStoryContent(message);
|
Content content = createStoryContent(message);
|
||||||
EnvelopeContent envelopeContent = EnvelopeContent.encrypted(content, ContentHint.RESENDABLE, Optional.empty());
|
EnvelopeContent envelopeContent = EnvelopeContent.encrypted(content, ContentHint.RESENDABLE, Optional.empty());
|
||||||
List<SendMessageResult> sendMessageResults = sendMessage(recipients, getTargetUnidentifiedAccess(unidentifiedAccess), timestamp, envelopeContent, false, null, null);
|
List<SendMessageResult> sendMessageResults = sendMessage(recipients, getTargetUnidentifiedAccess(unidentifiedAccess), timestamp, envelopeContent, false, null, null);
|
||||||
SignalServiceSyncMessage syncMessage = createSelfSendSyncMessageForStory(message, timestamp, manifest);
|
|
||||||
|
|
||||||
sendSyncMessage(syncMessage, Optional.empty());
|
if (store.isMultiDevice()) {
|
||||||
|
SignalServiceSyncMessage syncMessage = createSelfSendSyncMessageForStory(message, timestamp, isRecipientUpdate, manifest);
|
||||||
|
sendSyncMessage(syncMessage, Optional.empty());
|
||||||
|
}
|
||||||
|
|
||||||
return sendMessageResults;
|
return sendMessageResults;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Send a typing indicator to a group using sender key. Doesn't bother with return results, since these are best-effort.
|
* Send a story using sender key.
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
public List<SendMessageResult> sendGroupStory(DistributionId distributionId,
|
public List<SendMessageResult> sendGroupStory(DistributionId distributionId,
|
||||||
Optional<byte[]> groupId,
|
Optional<byte[]> groupId,
|
||||||
List<SignalServiceAddress> recipients,
|
List<SignalServiceAddress> recipients,
|
||||||
List<UnidentifiedAccess> unidentifiedAccess,
|
List<UnidentifiedAccess> unidentifiedAccess,
|
||||||
|
boolean isRecipientUpdate,
|
||||||
SignalServiceStoryMessage message,
|
SignalServiceStoryMessage message,
|
||||||
long timestamp,
|
long timestamp,
|
||||||
Set<SignalServiceStoryMessageRecipient> manifest)
|
Set<SignalServiceStoryMessageRecipient> manifest)
|
||||||
|
@ -282,9 +285,11 @@ public class SignalServiceMessageSender {
|
||||||
{
|
{
|
||||||
Content content = createStoryContent(message);
|
Content content = createStoryContent(message);
|
||||||
List<SendMessageResult> sendMessageResults = sendGroupMessage(distributionId, recipients, unidentifiedAccess, timestamp, content, ContentHint.RESENDABLE, groupId, false, SenderKeyGroupEvents.EMPTY);
|
List<SendMessageResult> sendMessageResults = sendGroupMessage(distributionId, recipients, unidentifiedAccess, timestamp, content, ContentHint.RESENDABLE, groupId, false, SenderKeyGroupEvents.EMPTY);
|
||||||
SignalServiceSyncMessage syncMessage = createSelfSendSyncMessageForStory(message, timestamp, manifest);
|
|
||||||
|
|
||||||
sendSyncMessage(syncMessage, Optional.empty());
|
if (store.isMultiDevice()) {
|
||||||
|
SignalServiceSyncMessage syncMessage = createSelfSendSyncMessageForStory(message, timestamp, isRecipientUpdate, manifest);
|
||||||
|
sendSyncMessage(syncMessage, Optional.empty());
|
||||||
|
}
|
||||||
|
|
||||||
return sendMessageResults;
|
return sendMessageResults;
|
||||||
}
|
}
|
||||||
|
@ -1576,13 +1581,17 @@ public class SignalServiceMessageSender {
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
private SignalServiceSyncMessage createSelfSendSyncMessageForStory(SignalServiceStoryMessage message, long sentTimestamp, Set<SignalServiceStoryMessageRecipient> manifest) {
|
private SignalServiceSyncMessage createSelfSendSyncMessageForStory(SignalServiceStoryMessage message,
|
||||||
|
long sentTimestamp,
|
||||||
|
boolean isRecipientUpdate,
|
||||||
|
Set<SignalServiceStoryMessageRecipient> manifest)
|
||||||
|
{
|
||||||
SentTranscriptMessage transcript = new SentTranscriptMessage(Optional.of(localAddress),
|
SentTranscriptMessage transcript = new SentTranscriptMessage(Optional.of(localAddress),
|
||||||
sentTimestamp,
|
sentTimestamp,
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
0,
|
0,
|
||||||
Collections.singletonMap(localAddress.getServiceId(), false),
|
Collections.singletonMap(localAddress.getServiceId(), false),
|
||||||
false,
|
isRecipientUpdate,
|
||||||
Optional.of(message),
|
Optional.of(message),
|
||||||
manifest);
|
manifest);
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue