mirror of
https://github.com/oxen-io/session-android.git
synced 2025-08-11 14:37:45 +00:00
configuration message handling
This commit is contained in:
@@ -381,7 +381,6 @@ public class SignalServiceMessageSender {
|
||||
} else if (message.getStickerPackOperations().isPresent()) {
|
||||
content = createMultiDeviceStickerPackOperationContent(message.getStickerPackOperations().get());
|
||||
} else if (message.getVerified().isPresent()) {
|
||||
sendMessage(message.getVerified().get(), unidentifiedAccess);
|
||||
return;
|
||||
} else {
|
||||
throw new IOException("Unsupported sync message!");
|
||||
@@ -452,12 +451,6 @@ public class SignalServiceMessageSender {
|
||||
result.getUrl());
|
||||
}
|
||||
|
||||
private void sendMessage(VerifiedMessage message, Optional<UnidentifiedAccessPair> unidentifiedAccess)
|
||||
throws IOException, UntrustedIdentityException
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private byte[] createTypingContent(SignalServiceTypingMessage message) {
|
||||
Content.Builder container = Content.newBuilder();
|
||||
TypingMessage.Builder builder = TypingMessage.newBuilder();
|
||||
@@ -1155,7 +1148,7 @@ public class SignalServiceMessageSender {
|
||||
final boolean notifyPNServer)
|
||||
throws IOException, UntrustedIdentityException
|
||||
{
|
||||
if (recipient.getNumber().equals(userPublicKey)) { return SendMessageResult.success(recipient, false, false); }
|
||||
// if (recipient.getNumber().equals(userPublicKey)) { return SendMessageResult.success(recipient, false, false); }
|
||||
final SettableFuture<?>[] future = { new SettableFuture<Unit>() };
|
||||
OutgoingPushMessageList messages = getSessionProtocolEncryptedMessage(recipient, timestamp, content);
|
||||
// Loki - Remove this when we have shared sender keys
|
||||
|
@@ -216,7 +216,18 @@ public class SignalServiceCipher {
|
||||
);
|
||||
}
|
||||
|
||||
if (message.hasDeviceLinkMessage()) {
|
||||
if (message.hasConfigurationMessage()) {
|
||||
SignalServiceCipher.Metadata metadata = plaintext.getMetadata();
|
||||
SignalServiceContent content = new SignalServiceContent(message, metadata.getSender(), metadata.getSenderDevice(), metadata.getTimestamp());
|
||||
|
||||
if (message.hasDataMessage()) {
|
||||
setProfile(message.getDataMessage(), content);
|
||||
SignalServiceDataMessage signalServiceDataMessage = createSignalServiceMessage(metadata, message.getDataMessage());
|
||||
content.setDataMessage(signalServiceDataMessage);
|
||||
}
|
||||
|
||||
return content;
|
||||
} else if (message.hasDeviceLinkMessage()) {
|
||||
SignalServiceProtos.DeviceLinkMessage protoDeviceLinkMessage = message.getDeviceLinkMessage();
|
||||
String masterPublicKey = protoDeviceLinkMessage.getPrimaryPublicKey();
|
||||
String slavePublicKey = protoDeviceLinkMessage.getSecondaryPublicKey();
|
||||
|
@@ -12,7 +12,9 @@ import org.session.libsignal.service.api.messages.SignalServiceNullMessage;
|
||||
import org.session.libsignal.service.api.messages.SignalServiceReceiptMessage;
|
||||
import org.session.libsignal.service.api.messages.SignalServiceTypingMessage;
|
||||
import org.session.libsignal.service.api.messages.calls.SignalServiceCallMessage;
|
||||
import org.session.libsignal.service.api.messages.multidevice.ConfigurationMessage;
|
||||
import org.session.libsignal.service.api.messages.multidevice.SignalServiceSyncMessage;
|
||||
import org.session.libsignal.service.internal.push.SignalServiceProtos;
|
||||
import org.session.libsignal.service.loki.protocol.shelved.multidevice.DeviceLink;
|
||||
import org.session.libsignal.service.loki.protocol.sessionmanagement.PreKeyBundleMessage;
|
||||
|
||||
@@ -33,10 +35,11 @@ public class SignalServiceContent {
|
||||
private final Optional<SignalServiceTypingMessage> typingMessage;
|
||||
|
||||
// Loki
|
||||
private final Optional<DeviceLink> deviceLink;
|
||||
public Optional<PreKeyBundleMessage> preKeyBundleMessage = Optional.absent();
|
||||
public Optional<String> senderDisplayName = Optional.absent();
|
||||
public Optional<String> senderProfilePictureURL = Optional.absent();
|
||||
private final Optional<DeviceLink> deviceLink;
|
||||
public Optional<SignalServiceProtos.Content> configurationMessageProto = Optional.absent();
|
||||
public Optional<PreKeyBundleMessage> preKeyBundleMessage = Optional.absent();
|
||||
public Optional<String> senderDisplayName = Optional.absent();
|
||||
public Optional<String> senderProfilePictureURL = Optional.absent();
|
||||
|
||||
public SignalServiceContent(SignalServiceDataMessage message, String sender, int senderDevice, long timestamp, boolean needsReceipt, boolean isDeviceUnlinkingRequest) {
|
||||
this.sender = sender;
|
||||
@@ -128,6 +131,22 @@ public class SignalServiceContent {
|
||||
this.isDeviceUnlinkingRequest = false;
|
||||
}
|
||||
|
||||
public SignalServiceContent(SignalServiceProtos.Content configurationMessageProto, String sender, int senderDevice, long timestamp) {
|
||||
this.sender = sender;
|
||||
this.senderDevice = senderDevice;
|
||||
this.timestamp = timestamp;
|
||||
this.needsReceipt = false;
|
||||
this.message = Optional.absent();
|
||||
this.synchronizeMessage = Optional.absent();
|
||||
this.callMessage = Optional.absent();
|
||||
this.nullMessage = Optional.absent();
|
||||
this.readMessage = Optional.absent();
|
||||
this.typingMessage = Optional.absent();
|
||||
this.deviceLink = Optional.absent();
|
||||
this.configurationMessageProto = Optional.fromNullable(configurationMessageProto);
|
||||
this.isDeviceUnlinkingRequest = false;
|
||||
}
|
||||
|
||||
public SignalServiceContent(SignalServiceNullMessage nullMessage, String sender, int senderDevice, long timestamp) {
|
||||
this.sender = sender;
|
||||
this.senderDevice = senderDevice;
|
||||
|
Reference in New Issue
Block a user