Remove support for legacy gv1 sync messages.
This commit is contained in:
parent
25779d04a6
commit
3a5e5364c7
8 changed files with 3 additions and 291 deletions
|
@ -136,7 +136,6 @@ public final class JobManagerFactories {
|
||||||
put(MultiDeviceConfigurationUpdateJob.KEY, new MultiDeviceConfigurationUpdateJob.Factory());
|
put(MultiDeviceConfigurationUpdateJob.KEY, new MultiDeviceConfigurationUpdateJob.Factory());
|
||||||
put(MultiDeviceContactSyncJob.KEY, new MultiDeviceContactSyncJob.Factory());
|
put(MultiDeviceContactSyncJob.KEY, new MultiDeviceContactSyncJob.Factory());
|
||||||
put(MultiDeviceContactUpdateJob.KEY, new MultiDeviceContactUpdateJob.Factory());
|
put(MultiDeviceContactUpdateJob.KEY, new MultiDeviceContactUpdateJob.Factory());
|
||||||
put(MultiDeviceGroupUpdateJob.KEY, new MultiDeviceGroupUpdateJob.Factory());
|
|
||||||
put(MultiDeviceKeysUpdateJob.KEY, new MultiDeviceKeysUpdateJob.Factory());
|
put(MultiDeviceKeysUpdateJob.KEY, new MultiDeviceKeysUpdateJob.Factory());
|
||||||
put(MultiDeviceMessageRequestResponseJob.KEY, new MultiDeviceMessageRequestResponseJob.Factory());
|
put(MultiDeviceMessageRequestResponseJob.KEY, new MultiDeviceMessageRequestResponseJob.Factory());
|
||||||
put(MultiDeviceOutgoingPaymentSyncJob.KEY, new MultiDeviceOutgoingPaymentSyncJob.Factory());
|
put(MultiDeviceOutgoingPaymentSyncJob.KEY, new MultiDeviceOutgoingPaymentSyncJob.Factory());
|
||||||
|
@ -283,6 +282,7 @@ public final class JobManagerFactories {
|
||||||
put("RecipientChangedNumberJob", new FailingJob.Factory());
|
put("RecipientChangedNumberJob", new FailingJob.Factory());
|
||||||
put("PushTextSendJob", new IndividualSendJob.Factory());
|
put("PushTextSendJob", new IndividualSendJob.Factory());
|
||||||
put("MultiDevicePniIdentityUpdateJob", new FailingJob.Factory());
|
put("MultiDevicePniIdentityUpdateJob", new FailingJob.Factory());
|
||||||
|
put("MultiDeviceGroupUpdateJob", new FailingJob.Factory());
|
||||||
}};
|
}};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,216 +0,0 @@
|
||||||
package org.thoughtcrime.securesms.jobs;
|
|
||||||
|
|
||||||
import android.net.Uri;
|
|
||||||
import android.os.ParcelFileDescriptor;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
|
|
||||||
import org.signal.core.util.logging.Log;
|
|
||||||
import org.thoughtcrime.securesms.conversation.colors.ChatColorsMapper;
|
|
||||||
import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil;
|
|
||||||
import org.thoughtcrime.securesms.database.GroupTable;
|
|
||||||
import org.thoughtcrime.securesms.database.SignalDatabase;
|
|
||||||
import org.thoughtcrime.securesms.database.model.GroupRecord;
|
|
||||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
|
||||||
import org.thoughtcrime.securesms.jobmanager.Job;
|
|
||||||
import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint;
|
|
||||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
|
||||||
import org.thoughtcrime.securesms.net.NotPushRegisteredException;
|
|
||||||
import org.thoughtcrime.securesms.profiles.AvatarHelper;
|
|
||||||
import org.thoughtcrime.securesms.providers.BlobProvider;
|
|
||||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
|
||||||
import org.thoughtcrime.securesms.recipients.RecipientId;
|
|
||||||
import org.thoughtcrime.securesms.recipients.RecipientUtil;
|
|
||||||
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.SignalServiceAttachment;
|
|
||||||
import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentStream;
|
|
||||||
import org.whispersystems.signalservice.api.messages.multidevice.DeviceGroup;
|
|
||||||
import org.whispersystems.signalservice.api.messages.multidevice.DeviceGroupsOutputStream;
|
|
||||||
import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage;
|
|
||||||
import org.whispersystems.signalservice.api.push.SignalServiceAddress;
|
|
||||||
import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException;
|
|
||||||
import org.whispersystems.signalservice.api.push.exceptions.ServerRejectedException;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.util.LinkedList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.Future;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
public class MultiDeviceGroupUpdateJob extends BaseJob {
|
|
||||||
|
|
||||||
public static final String KEY = "MultiDeviceGroupUpdateJob";
|
|
||||||
|
|
||||||
private static final String TAG = Log.tag(MultiDeviceGroupUpdateJob.class);
|
|
||||||
|
|
||||||
public MultiDeviceGroupUpdateJob() {
|
|
||||||
this(new Job.Parameters.Builder()
|
|
||||||
.addConstraint(NetworkConstraint.KEY)
|
|
||||||
.setQueue("MultiDeviceGroupUpdateJob")
|
|
||||||
.setLifespan(TimeUnit.DAYS.toMillis(1))
|
|
||||||
.setMaxAttempts(Parameters.UNLIMITED)
|
|
||||||
.build());
|
|
||||||
}
|
|
||||||
|
|
||||||
private MultiDeviceGroupUpdateJob(@NonNull Job.Parameters parameters) {
|
|
||||||
super(parameters);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public @NonNull String getFactoryKey() {
|
|
||||||
return KEY;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public @Nullable byte[] serialize() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRun() throws Exception {
|
|
||||||
if (!Recipient.self().isRegistered()) {
|
|
||||||
throw new NotPushRegisteredException();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!TextSecurePreferences.isMultiDevice(context)) {
|
|
||||||
Log.i(TAG, "Not multi device, aborting...");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (SignalStore.account().isLinkedDevice()) {
|
|
||||||
Log.i(TAG, "Not primary device, aborting...");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ParcelFileDescriptor[] pipe = ParcelFileDescriptor.createPipe();
|
|
||||||
InputStream inputStream = new ParcelFileDescriptor.AutoCloseInputStream(pipe[0]);
|
|
||||||
Future<Uri> futureUri = BlobProvider.getInstance()
|
|
||||||
.forData(inputStream, 0)
|
|
||||||
.withFileName("multidevice-group-update")
|
|
||||||
.createForSingleSessionOnDiskAsync(context);
|
|
||||||
|
|
||||||
Uri blobUri = null;
|
|
||||||
|
|
||||||
try (GroupTable.Reader reader = SignalDatabase.groups().getGroups()) {
|
|
||||||
DeviceGroupsOutputStream out = new DeviceGroupsOutputStream(new ParcelFileDescriptor.AutoCloseOutputStream(pipe[1]));
|
|
||||||
boolean hasData = false;
|
|
||||||
|
|
||||||
GroupRecord record;
|
|
||||||
|
|
||||||
while ((record = reader.getNext()) != null) {
|
|
||||||
if (record.isV1Group()) {
|
|
||||||
List<SignalServiceAddress> members = new LinkedList<>();
|
|
||||||
List<Recipient> registeredMembers = RecipientUtil.getEligibleForSending(Recipient.resolvedList(record.getMembers()));
|
|
||||||
|
|
||||||
for (Recipient member : registeredMembers) {
|
|
||||||
members.add(RecipientUtil.toSignalServiceAddress(context, member));
|
|
||||||
}
|
|
||||||
|
|
||||||
RecipientId recipientId = SignalDatabase.recipients().getOrInsertFromPossiblyMigratedGroupId(record.getId());
|
|
||||||
Recipient recipient = Recipient.resolved(recipientId);
|
|
||||||
Optional<Integer> expirationTimer = recipient.getExpiresInSeconds() > 0 ? Optional.of(recipient.getExpiresInSeconds()) : Optional.empty();
|
|
||||||
Map<RecipientId, Integer> inboxPositions = SignalDatabase.threads().getInboxPositions();
|
|
||||||
Set<RecipientId> archived = SignalDatabase.threads().getArchivedRecipients();
|
|
||||||
|
|
||||||
out.write(new DeviceGroup(record.getId().getDecodedId(),
|
|
||||||
Optional.ofNullable(record.getTitle()),
|
|
||||||
members,
|
|
||||||
getAvatar(record.getRecipientId()),
|
|
||||||
record.isActive(),
|
|
||||||
expirationTimer,
|
|
||||||
Optional.of(ChatColorsMapper.getMaterialColor(recipient.getChatColors()).serialize()),
|
|
||||||
recipient.isBlocked(),
|
|
||||||
Optional.ofNullable(inboxPositions.get(recipientId)),
|
|
||||||
archived.contains(recipientId)));
|
|
||||||
|
|
||||||
hasData = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
out.close();
|
|
||||||
|
|
||||||
if (hasData) {
|
|
||||||
blobUri = futureUri.get();
|
|
||||||
long length = BlobProvider.getInstance().calculateFileSize(context, blobUri);
|
|
||||||
|
|
||||||
sendUpdate(ApplicationDependencies.getSignalServiceMessageSender(),
|
|
||||||
BlobProvider.getInstance().getStream(context, blobUri),
|
|
||||||
length);
|
|
||||||
} else {
|
|
||||||
Log.w(TAG, "No groups present for sync message. Sending an empty update.");
|
|
||||||
|
|
||||||
sendUpdate(ApplicationDependencies.getSignalServiceMessageSender(),
|
|
||||||
null,
|
|
||||||
0);
|
|
||||||
}
|
|
||||||
} finally {
|
|
||||||
if (blobUri != null) {
|
|
||||||
BlobProvider.getInstance().delete(context, blobUri);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onShouldRetry(@NonNull Exception exception) {
|
|
||||||
if (exception instanceof ServerRejectedException) return false;
|
|
||||||
if (exception instanceof PushNetworkException) return true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailure() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void sendUpdate(SignalServiceMessageSender messageSender, InputStream stream, long length)
|
|
||||||
throws IOException, UntrustedIdentityException
|
|
||||||
{
|
|
||||||
SignalServiceAttachmentStream attachmentStream;
|
|
||||||
|
|
||||||
if (length > 0) {
|
|
||||||
attachmentStream = SignalServiceAttachment.newStreamBuilder()
|
|
||||||
.withStream(stream)
|
|
||||||
.withContentType("application/octet-stream")
|
|
||||||
.withLength(length)
|
|
||||||
.build();
|
|
||||||
} else {
|
|
||||||
attachmentStream = SignalServiceAttachment.emptyStream("application/octet-stream");
|
|
||||||
}
|
|
||||||
|
|
||||||
messageSender.sendSyncMessage(SignalServiceSyncMessage.forGroups(attachmentStream),
|
|
||||||
UnidentifiedAccessUtil.getAccessForSync(context));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private Optional<SignalServiceAttachmentStream> getAvatar(@NonNull RecipientId recipientId) throws IOException {
|
|
||||||
if (!AvatarHelper.hasAvatar(context, recipientId)) return Optional.empty();
|
|
||||||
|
|
||||||
return Optional.of(SignalServiceAttachment.newStreamBuilder()
|
|
||||||
.withStream(AvatarHelper.getAvatar(context, recipientId))
|
|
||||||
.withContentType("image/*")
|
|
||||||
.withLength(AvatarHelper.getAvatarLength(context, recipientId))
|
|
||||||
.build());
|
|
||||||
}
|
|
||||||
|
|
||||||
private File createTempFile(String prefix) throws IOException {
|
|
||||||
File file = File.createTempFile(prefix, "tmp", context.getCacheDir());
|
|
||||||
file.deleteOnExit();
|
|
||||||
|
|
||||||
return file;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final class Factory implements Job.Factory<MultiDeviceGroupUpdateJob> {
|
|
||||||
@Override
|
|
||||||
public @NonNull MultiDeviceGroupUpdateJob create(@NonNull Parameters parameters, @Nullable byte[] serializedData) {
|
|
||||||
return new MultiDeviceGroupUpdateJob(parameters);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -85,7 +85,6 @@ import org.thoughtcrime.securesms.jobs.MultiDeviceBlockedUpdateJob;
|
||||||
import org.thoughtcrime.securesms.jobs.MultiDeviceConfigurationUpdateJob;
|
import org.thoughtcrime.securesms.jobs.MultiDeviceConfigurationUpdateJob;
|
||||||
import org.thoughtcrime.securesms.jobs.MultiDeviceContactSyncJob;
|
import org.thoughtcrime.securesms.jobs.MultiDeviceContactSyncJob;
|
||||||
import org.thoughtcrime.securesms.jobs.MultiDeviceContactUpdateJob;
|
import org.thoughtcrime.securesms.jobs.MultiDeviceContactUpdateJob;
|
||||||
import org.thoughtcrime.securesms.jobs.MultiDeviceGroupUpdateJob;
|
|
||||||
import org.thoughtcrime.securesms.jobs.MultiDeviceKeysUpdateJob;
|
import org.thoughtcrime.securesms.jobs.MultiDeviceKeysUpdateJob;
|
||||||
import org.thoughtcrime.securesms.jobs.MultiDeviceStickerPackSyncJob;
|
import org.thoughtcrime.securesms.jobs.MultiDeviceStickerPackSyncJob;
|
||||||
import org.thoughtcrime.securesms.jobs.NullMessageSendJob;
|
import org.thoughtcrime.securesms.jobs.NullMessageSendJob;
|
||||||
|
@ -1509,10 +1508,6 @@ public class MessageContentProcessor {
|
||||||
ApplicationDependencies.getJobManager().add(new MultiDeviceContactUpdateJob(true));
|
ApplicationDependencies.getJobManager().add(new MultiDeviceContactUpdateJob(true));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (message.isGroupsRequest()) {
|
|
||||||
ApplicationDependencies.getJobManager().add(new MultiDeviceGroupUpdateJob());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (message.isBlockedListRequest()) {
|
if (message.isBlockedListRequest()) {
|
||||||
ApplicationDependencies.getJobManager().add(new MultiDeviceBlockedUpdateJob());
|
ApplicationDependencies.getJobManager().add(new MultiDeviceBlockedUpdateJob());
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,6 @@ import org.thoughtcrime.securesms.jobs.MultiDeviceBlockedUpdateJob
|
||||||
import org.thoughtcrime.securesms.jobs.MultiDeviceConfigurationUpdateJob
|
import org.thoughtcrime.securesms.jobs.MultiDeviceConfigurationUpdateJob
|
||||||
import org.thoughtcrime.securesms.jobs.MultiDeviceContactSyncJob
|
import org.thoughtcrime.securesms.jobs.MultiDeviceContactSyncJob
|
||||||
import org.thoughtcrime.securesms.jobs.MultiDeviceContactUpdateJob
|
import org.thoughtcrime.securesms.jobs.MultiDeviceContactUpdateJob
|
||||||
import org.thoughtcrime.securesms.jobs.MultiDeviceGroupUpdateJob
|
|
||||||
import org.thoughtcrime.securesms.jobs.MultiDeviceKeysUpdateJob
|
import org.thoughtcrime.securesms.jobs.MultiDeviceKeysUpdateJob
|
||||||
import org.thoughtcrime.securesms.jobs.MultiDeviceStickerPackSyncJob
|
import org.thoughtcrime.securesms.jobs.MultiDeviceStickerPackSyncJob
|
||||||
import org.thoughtcrime.securesms.jobs.PushProcessEarlyMessagesJob
|
import org.thoughtcrime.securesms.jobs.PushProcessEarlyMessagesJob
|
||||||
|
@ -868,7 +867,6 @@ object SyncMessageProcessor {
|
||||||
|
|
||||||
when (message.type) {
|
when (message.type) {
|
||||||
Request.Type.CONTACTS -> ApplicationDependencies.getJobManager().add(MultiDeviceContactUpdateJob(true))
|
Request.Type.CONTACTS -> ApplicationDependencies.getJobManager().add(MultiDeviceContactUpdateJob(true))
|
||||||
Request.Type.GROUPS -> ApplicationDependencies.getJobManager().add(MultiDeviceGroupUpdateJob())
|
|
||||||
Request.Type.BLOCKED -> ApplicationDependencies.getJobManager().add(MultiDeviceBlockedUpdateJob())
|
Request.Type.BLOCKED -> ApplicationDependencies.getJobManager().add(MultiDeviceBlockedUpdateJob())
|
||||||
Request.Type.CONFIGURATION -> {
|
Request.Type.CONFIGURATION -> {
|
||||||
ApplicationDependencies.getJobManager().add(
|
ApplicationDependencies.getJobManager().add(
|
||||||
|
|
|
@ -658,8 +658,6 @@ public class SignalServiceMessageSender {
|
||||||
|
|
||||||
if (message.getContacts().isPresent()) {
|
if (message.getContacts().isPresent()) {
|
||||||
content = createMultiDeviceContactsContent(message.getContacts().get().getContactsStream().asStream(), message.getContacts().get().isComplete());
|
content = createMultiDeviceContactsContent(message.getContacts().get().getContactsStream().asStream(), message.getContacts().get().isComplete());
|
||||||
} else if (message.getGroups().isPresent()) {
|
|
||||||
content = createMultiDeviceGroupsContent(message.getGroups().get().asStream());
|
|
||||||
} else if (message.getRead().isPresent()) {
|
} else if (message.getRead().isPresent()) {
|
||||||
content = createMultiDeviceReadContent(message.getRead().get());
|
content = createMultiDeviceReadContent(message.getRead().get());
|
||||||
urgent = true;
|
urgent = true;
|
||||||
|
@ -1304,16 +1302,6 @@ public class SignalServiceMessageSender {
|
||||||
return container.setSyncMessage(builder).build();
|
return container.setSyncMessage(builder).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Content createMultiDeviceGroupsContent(SignalServiceAttachmentStream groups) throws IOException {
|
|
||||||
Content.Builder container = Content.newBuilder();
|
|
||||||
SyncMessage.Builder builder = createSyncMessageBuilder();
|
|
||||||
|
|
||||||
builder.setGroups(SyncMessage.Groups.newBuilder()
|
|
||||||
.setBlob(createAttachmentPointer(groups)));
|
|
||||||
|
|
||||||
return container.setSyncMessage(builder).build();
|
|
||||||
}
|
|
||||||
|
|
||||||
private Content createMultiDeviceSentTranscriptContent(SentTranscriptMessage transcript, boolean unidentifiedAccess) throws IOException {
|
private Content createMultiDeviceSentTranscriptContent(SentTranscriptMessage transcript, boolean unidentifiedAccess) throws IOException {
|
||||||
SignalServiceAddress address = transcript.getDestination().get();
|
SignalServiceAddress address = transcript.getDestination().get();
|
||||||
Content content = createMessageContent(transcript);
|
Content content = createMessageContent(transcript);
|
||||||
|
|
|
@ -28,10 +28,6 @@ public class RequestMessage {
|
||||||
return request.getType() == Request.Type.CONTACTS;
|
return request.getType() == Request.Type.CONTACTS;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isGroupsRequest() {
|
|
||||||
return request.getType() == Request.Type.GROUPS;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isBlockedListRequest() {
|
public boolean isBlockedListRequest() {
|
||||||
return request.getType() == Request.Type.BLOCKED;
|
return request.getType() == Request.Type.BLOCKED;
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,6 @@ public class SignalServiceSyncMessage {
|
||||||
|
|
||||||
private final Optional<SentTranscriptMessage> sent;
|
private final Optional<SentTranscriptMessage> sent;
|
||||||
private final Optional<ContactsMessage> contacts;
|
private final Optional<ContactsMessage> contacts;
|
||||||
private final Optional<SignalServiceAttachment> groups;
|
|
||||||
private final Optional<BlockedListMessage> blockedList;
|
private final Optional<BlockedListMessage> blockedList;
|
||||||
private final Optional<RequestMessage> request;
|
private final Optional<RequestMessage> request;
|
||||||
private final Optional<List<ReadMessage>> reads;
|
private final Optional<List<ReadMessage>> reads;
|
||||||
|
@ -40,7 +39,6 @@ public class SignalServiceSyncMessage {
|
||||||
|
|
||||||
private SignalServiceSyncMessage(Optional<SentTranscriptMessage> sent,
|
private SignalServiceSyncMessage(Optional<SentTranscriptMessage> sent,
|
||||||
Optional<ContactsMessage> contacts,
|
Optional<ContactsMessage> contacts,
|
||||||
Optional<SignalServiceAttachment> groups,
|
|
||||||
Optional<BlockedListMessage> blockedList,
|
Optional<BlockedListMessage> blockedList,
|
||||||
Optional<RequestMessage> request,
|
Optional<RequestMessage> request,
|
||||||
Optional<List<ReadMessage>> reads,
|
Optional<List<ReadMessage>> reads,
|
||||||
|
@ -58,7 +56,6 @@ public class SignalServiceSyncMessage {
|
||||||
{
|
{
|
||||||
this.sent = sent;
|
this.sent = sent;
|
||||||
this.contacts = contacts;
|
this.contacts = contacts;
|
||||||
this.groups = groups;
|
|
||||||
this.blockedList = blockedList;
|
this.blockedList = blockedList;
|
||||||
this.request = request;
|
this.request = request;
|
||||||
this.reads = reads;
|
this.reads = reads;
|
||||||
|
@ -91,7 +88,6 @@ public class SignalServiceSyncMessage {
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
|
||||||
Optional.empty());
|
Optional.empty());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -111,33 +107,11 @@ public class SignalServiceSyncMessage {
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
|
||||||
Optional.empty());
|
|
||||||
}
|
|
||||||
|
|
||||||
public static SignalServiceSyncMessage forGroups(SignalServiceAttachment groups) {
|
|
||||||
return new SignalServiceSyncMessage(Optional.empty(),
|
|
||||||
Optional.empty(),
|
|
||||||
Optional.of(groups),
|
|
||||||
Optional.empty(),
|
|
||||||
Optional.empty(),
|
|
||||||
Optional.empty(),
|
|
||||||
Optional.empty(),
|
|
||||||
Optional.empty(),
|
|
||||||
Optional.empty(),
|
|
||||||
Optional.empty(),
|
|
||||||
Optional.empty(),
|
|
||||||
Optional.empty(),
|
|
||||||
Optional.empty(),
|
|
||||||
Optional.empty(),
|
|
||||||
Optional.empty(),
|
|
||||||
Optional.empty(),
|
|
||||||
Optional.empty());
|
Optional.empty());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SignalServiceSyncMessage forRequest(RequestMessage request) {
|
public static SignalServiceSyncMessage forRequest(RequestMessage request) {
|
||||||
return new SignalServiceSyncMessage(Optional.empty(),
|
return new SignalServiceSyncMessage(Optional.empty(),
|
||||||
Optional.empty(),
|
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.of(request),
|
Optional.of(request),
|
||||||
|
@ -160,7 +134,6 @@ public class SignalServiceSyncMessage {
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
|
||||||
Optional.of(reads),
|
Optional.of(reads),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
|
@ -189,7 +162,6 @@ public class SignalServiceSyncMessage {
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
|
||||||
Optional.of(views),
|
Optional.of(views),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty());
|
Optional.empty());
|
||||||
|
@ -201,7 +173,6 @@ public class SignalServiceSyncMessage {
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
|
||||||
Optional.of(timerRead),
|
Optional.of(timerRead),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
|
@ -223,7 +194,6 @@ public class SignalServiceSyncMessage {
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
|
||||||
Optional.of(reads),
|
Optional.of(reads),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
|
@ -245,7 +215,6 @@ public class SignalServiceSyncMessage {
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
|
||||||
Optional.of(verifiedMessage),
|
Optional.of(verifiedMessage),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
|
@ -260,7 +229,6 @@ public class SignalServiceSyncMessage {
|
||||||
|
|
||||||
public static SignalServiceSyncMessage forBlocked(BlockedListMessage blocked) {
|
public static SignalServiceSyncMessage forBlocked(BlockedListMessage blocked) {
|
||||||
return new SignalServiceSyncMessage(Optional.empty(),
|
return new SignalServiceSyncMessage(Optional.empty(),
|
||||||
Optional.empty(),
|
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.of(blocked),
|
Optional.of(blocked),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
|
@ -286,7 +254,6 @@ public class SignalServiceSyncMessage {
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
|
||||||
Optional.of(configuration),
|
Optional.of(configuration),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
|
@ -307,7 +274,6 @@ public class SignalServiceSyncMessage {
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
|
||||||
Optional.of(stickerPackOperations),
|
Optional.of(stickerPackOperations),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
|
@ -328,7 +294,6 @@ public class SignalServiceSyncMessage {
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
|
||||||
Optional.of(fetchType),
|
Optional.of(fetchType),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
|
@ -349,7 +314,6 @@ public class SignalServiceSyncMessage {
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
|
||||||
Optional.of(keys),
|
Optional.of(keys),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
|
@ -370,7 +334,6 @@ public class SignalServiceSyncMessage {
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
|
||||||
Optional.of(messageRequestResponse),
|
Optional.of(messageRequestResponse),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
|
@ -391,7 +354,6 @@ public class SignalServiceSyncMessage {
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
|
||||||
Optional.of(outgoingPaymentMessage),
|
Optional.of(outgoingPaymentMessage),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
|
@ -413,7 +375,6 @@ public class SignalServiceSyncMessage {
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
|
||||||
Optional.of(callEvent),
|
Optional.of(callEvent),
|
||||||
Optional.empty());
|
Optional.empty());
|
||||||
}
|
}
|
||||||
|
@ -434,7 +395,6 @@ public class SignalServiceSyncMessage {
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
|
||||||
Optional.of(callLinkUpdate));
|
Optional.of(callLinkUpdate));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -454,7 +414,6 @@ public class SignalServiceSyncMessage {
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
|
||||||
Optional.empty());
|
Optional.empty());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -462,10 +421,6 @@ public class SignalServiceSyncMessage {
|
||||||
return sent;
|
return sent;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Optional<SignalServiceAttachment> getGroups() {
|
|
||||||
return groups;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Optional<ContactsMessage> getContacts() {
|
public Optional<ContactsMessage> getContacts() {
|
||||||
return contacts;
|
return contacts;
|
||||||
}
|
}
|
||||||
|
|
|
@ -479,10 +479,6 @@ message SyncMessage {
|
||||||
optional bool complete = 2 [default = false];
|
optional bool complete = 2 [default = false];
|
||||||
}
|
}
|
||||||
|
|
||||||
message Groups {
|
|
||||||
optional AttachmentPointer blob = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message Blocked {
|
message Blocked {
|
||||||
repeated string numbers = 1;
|
repeated string numbers = 1;
|
||||||
repeated string uuids = 3;
|
repeated string uuids = 3;
|
||||||
|
@ -493,7 +489,7 @@ message SyncMessage {
|
||||||
enum Type {
|
enum Type {
|
||||||
UNKNOWN = 0;
|
UNKNOWN = 0;
|
||||||
CONTACTS = 1;
|
CONTACTS = 1;
|
||||||
GROUPS = 2;
|
// GROUPS = 2;
|
||||||
BLOCKED = 3;
|
BLOCKED = 3;
|
||||||
CONFIGURATION = 4;
|
CONFIGURATION = 4;
|
||||||
KEYS = 5;
|
KEYS = 5;
|
||||||
|
@ -636,7 +632,7 @@ message SyncMessage {
|
||||||
|
|
||||||
optional Sent sent = 1;
|
optional Sent sent = 1;
|
||||||
optional Contacts contacts = 2;
|
optional Contacts contacts = 2;
|
||||||
optional Groups groups = 3;
|
reserved /*groups*/ 3;
|
||||||
optional Request request = 4;
|
optional Request request = 4;
|
||||||
repeated Read read = 5;
|
repeated Read read = 5;
|
||||||
optional Blocked blocked = 6;
|
optional Blocked blocked = 6;
|
||||||
|
|
Loading…
Add table
Reference in a new issue