}
dependencies {
- compile 'com.github.turasa:signal-service-java:2.15.3_unofficial_6'
+ compile 'com.github.turasa:signal-service-java:2.15.3_unofficial_7'
compile 'org.bouncycastle:bcprov-jdk15on:1.64'
compile 'net.sourceforge.argparse4j:argparse4j:0.8.1'
compile 'org.freedesktop.dbus:dbus-java:2.7.0'
import org.whispersystems.signalservice.api.messages.SignalServiceAttachment;
import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage;
+import org.whispersystems.signalservice.api.messages.SignalServiceGroup;
import java.util.ArrayList;
import java.util.List;
JsonDataMessage(SignalServiceDataMessage dataMessage) {
this.timestamp = dataMessage.getTimestamp();
- if (dataMessage.getGroupInfo().isPresent()) {
- this.groupInfo = new JsonGroupInfo(dataMessage.getGroupInfo().get());
+ if (dataMessage.getGroupContext().isPresent() && dataMessage.getGroupContext().get().getGroupV1().isPresent()) {
+ SignalServiceGroup groupInfo = dataMessage.getGroupContext().get().getGroupV1().get();
+ this.groupInfo = new JsonGroupInfo(groupInfo);
}
if (dataMessage.getBody().isPresent()) {
this.message = dataMessage.getBody().get();
SignalServiceDataMessage message = content.getDataMessage().get();
if (!message.isEndSession() &&
- !(message.getGroupInfo().isPresent() &&
- message.getGroupInfo().get().getType() != SignalServiceGroup.Type.DELIVER)) {
+ !(message.getGroupContext().isPresent() &&
+ message.getGroupContext().get().getGroupV1Type() != SignalServiceGroup.Type.DELIVER)) {
List<String> attachments = new ArrayList<>();
if (message.getAttachments().isPresent()) {
for (SignalServiceAttachment attachment : message.getAttachments().get()) {
objectPath,
message.getTimestamp(),
envelope.isUnidentifiedSender() || !envelope.hasSource() ? content.getSender().getNumber().get() : envelope.getSourceE164().get(),
- message.getGroupInfo().isPresent() ? message.getGroupInfo().get().getGroupId() : new byte[0],
+ message.getGroupContext().isPresent() && message.getGroupContext().get().getGroupV1().isPresent()
+ ? message.getGroupContext().get().getGroupV1().get().getGroupId() : new byte[0],
message.getBody().isPresent() ? message.getBody().get() : "",
attachments));
} catch (DBusException e) {
if (message.getBody().isPresent()) {
System.out.println("Body: " + message.getBody().get());
}
- if (message.getGroupInfo().isPresent()) {
- SignalServiceGroup groupInfo = message.getGroupInfo().get();
+ if (message.getGroupContext().isPresent() && message.getGroupContext().get().getGroupV1().isPresent()) {
+ SignalServiceGroup groupInfo = message.getGroupContext().get().getGroupV1().get();
System.out.println("Group info:");
System.out.println(" Id: " + Base64.encodeBytes(groupInfo.getGroupId()));
if (groupInfo.getType() == SignalServiceGroup.Type.UPDATE && groupInfo.getName().isPresent()) {
SignalServiceMessageSender messageSender = getMessageSender();
message = messageBuilder.build();
- if (message.getGroupInfo().isPresent()) {
+ if (message.getGroupContext().isPresent()) {
try {
final boolean isRecipientUpdate = false;
List<SendMessageResult> result = messageSender.sendMessage(new ArrayList<>(recipients), getAccessFor(recipients), isRecipientUpdate, message);
}
private void handleSignalServiceDataMessage(SignalServiceDataMessage message, boolean isSync, SignalServiceAddress source, SignalServiceAddress destination, boolean ignoreAttachments) {
- if (message.getGroupInfo().isPresent()) {
- SignalServiceGroup groupInfo = message.getGroupInfo().get();
+ if (message.getGroupContext().isPresent() && message.getGroupContext().get().getGroupV1().isPresent()) {
+ SignalServiceGroup groupInfo = message.getGroupContext().get().getGroupV1().get();
GroupInfo group = account.getGroupStore().getGroup(groupInfo.getGroupId());
switch (groupInfo.getType()) {
case UPDATE:
handleEndSession(isSync ? destination : source);
}
if (message.isExpirationUpdate() || message.getBody().isPresent()) {
- if (message.getGroupInfo().isPresent()) {
- SignalServiceGroup groupInfo = message.getGroupInfo().get();
+ if (message.getGroupContext().isPresent() && message.getGroupContext().get().getGroupV1().isPresent()) {
+ SignalServiceGroup groupInfo = message.getGroupContext().get().getGroupV1().get();
GroupInfo group = account.getGroupStore().getGroup(groupInfo.getGroupId());
if (group == null) {
group = new GroupInfo(groupInfo.getGroupId());
if (content != null && content.getDataMessage().isPresent()) {
SignalServiceDataMessage message = content.getDataMessage().get();
- if (message.getGroupInfo().isPresent()) {
- SignalServiceGroup groupInfo = message.getGroupInfo().get();
+ if (message.getGroupContext().isPresent() && message.getGroupContext().get().getGroupV1().isPresent()) {
+ SignalServiceGroup groupInfo = message.getGroupContext().get().getGroupV1().get();
GroupInfo group = getGroup(groupInfo.getGroupId());
if (groupInfo.getType() == SignalServiceGroup.Type.DELIVER && group != null && group.blocked) {
return true;