busType = DBusConnection.SESSION;
}
dBusConn = DBusConnection.getConnection(busType);
- ts = (Signal) dBusConn.getRemoteObject(
+ ts = dBusConn.getRemoteObject(
SIGNAL_BUSNAME, SIGNAL_OBJECTPATH,
Signal.class);
} catch (UnsatisfiedLinkError e) {
System.out.println("Relayed by: " + source.getRelay().get());
}
System.out.println("Timestamp: " + formatTimestamp(envelope.getTimestamp()));
+ if (envelope.isUnidentifiedSender()) {
+ System.out.println("Sent by unidentified/sealed sender");
+ }
if (envelope.isReceipt()) {
System.out.println("Got receipt.");
System.out.println(" " + formatTimestamp(timestamp));
}
}
+ if (content.getTypingMessage().isPresent()) {
+ System.out.println("Received a typing message");
+ SignalServiceTypingMessage typingMessage = content.getTypingMessage().get();
+ System.out.println(" - Action: " + typingMessage.getAction());
+ System.out.println(" - Timestamp: " + formatTimestamp(typingMessage.getTimestamp()));
+ if (typingMessage.getGroupId().isPresent()) {
+ GroupInfo group = m.getGroup(typingMessage.getGroupId().get());
+ if (group != null) {
+ System.out.println(" Name: " + group.name);
+ } else {
+ System.out.println(" Name: <Unknown group>");
+ }
+ }
+ }
}
} else {
System.out.println("Unknown message received.");
if (message.getExpiresInSeconds() > 0) {
System.out.println("Expires in: " + message.getExpiresInSeconds() + " seconds");
}
- if (message.isProfileKeyUpdate() && message.getProfileKey().isPresent()) {
+ if (message.getProfileKey().isPresent()) {
System.out.println("Profile key update, key length:" + message.getProfileKey().get().length);
}
System.out.println(" Filename: " + attachment.getFileName());
System.out.println(" Type: " + attachment.getContentType());
System.out.println(" Thumbnail:");
- printAttachment(attachment.getThumbnail());
+ if (attachment.getThumbnail() != null) {
+ printAttachment(attachment.getThumbnail());
+ }
}
}
}
System.out.println("- " + attachment.getContentType() + " (" + (attachment.isPointer() ? "Pointer" : "") + (attachment.isStream() ? "Stream" : "") + ")");
if (attachment.isPointer()) {
final SignalServiceAttachmentPointer pointer = attachment.asPointer();
- System.out.println(" Id: " + pointer.getId() + " Key length: " + pointer.getKey().length + (pointer.getRelay().isPresent() ? " Relay: " + pointer.getRelay().get() : ""));
+ System.out.println(" Id: " + pointer.getId() + " Key length: " + pointer.getKey().length);
System.out.println(" Filename: " + (pointer.getFileName().isPresent() ? pointer.getFileName().get() : "-"));
System.out.println(" Size: " + (pointer.getSize().isPresent() ? pointer.getSize().get() + " bytes" : "<unavailable>") + (pointer.getPreview().isPresent() ? " (Preview is available: " + pointer.getPreview().get().length + " bytes)" : ""));
System.out.println(" Voice note: " + (pointer.getVoiceNote() ? "yes" : "no"));
public void handleMessage(SignalServiceEnvelope envelope, SignalServiceContent content, Throwable exception) {
super.handleMessage(envelope, content, exception);
- if (envelope.isReceipt()) {
- try {
- conn.sendSignal(new Signal.ReceiptReceived(
- SIGNAL_OBJECTPATH,
- envelope.getTimestamp(),
- envelope.getSource()
- ));
- } catch (DBusException e) {
- e.printStackTrace();
- }
- } else if (content != null && content.getDataMessage().isPresent()) {
- SignalServiceDataMessage message = content.getDataMessage().get();
-
- if (!message.isEndSession() &&
- !(message.getGroupInfo().isPresent() &&
- message.getGroupInfo().get().getType() != SignalServiceGroup.Type.DELIVER)) {
- List<String> attachments = new ArrayList<>();
- if (message.getAttachments().isPresent()) {
- for (SignalServiceAttachment attachment : message.getAttachments().get()) {
- if (attachment.isPointer()) {
- attachments.add(m.getAttachmentFile(attachment.asPointer().getId()).getAbsolutePath());
- }
- }
- }
-
- try {
- conn.sendSignal(new Signal.MessageReceived(
- SIGNAL_OBJECTPATH,
- message.getTimestamp(),
- envelope.getSource(),
- message.getGroupInfo().isPresent() ? message.getGroupInfo().get().getGroupId() : new byte[0],
- message.getBody().isPresent() ? message.getBody().get() : "",
- attachments));
- } catch (DBusException e) {
- e.printStackTrace();
- }
- }
- }
+ JsonDbusReceiveMessageHandler.sendReceivedMessageToDbus(envelope, content, conn, m);
}
}
public void handleMessage(SignalServiceEnvelope envelope, SignalServiceContent content, Throwable exception) {
super.handleMessage(envelope, content, exception);
+ sendReceivedMessageToDbus(envelope, content, conn, m);
+ }
+
+ private static void sendReceivedMessageToDbus(SignalServiceEnvelope envelope, SignalServiceContent content, DBusConnection conn, Manager m) {
if (envelope.isReceipt()) {
try {
conn.sendSignal(new Signal.ReceiptReceived(