X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/12c296f9ec45cad9b81f1425b9fd30793a1a7d8f..4ab904b88e0b445c5e886fe91add69fb215dd455:/src/main/java/org/asamk/signal/Main.java diff --git a/src/main/java/org/asamk/signal/Main.java b/src/main/java/org/asamk/signal/Main.java index 8cbaa669..7f85f280 100644 --- a/src/main/java/org/asamk/signal/Main.java +++ b/src/main/java/org/asamk/signal/Main.java @@ -100,7 +100,7 @@ public class Main { busType = DBusConnection.SESSION; } dBusConn = DBusConnection.getConnection(busType); - ts = (Signal) dBusConn.getRemoteObject( + ts = dBusConn.getRemoteObject( SIGNAL_BUSNAME, SIGNAL_OBJECTPATH, Signal.class); } catch (UnsatisfiedLinkError e) { @@ -984,6 +984,9 @@ public class Main { 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."); @@ -1120,6 +1123,20 @@ public class Main { 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: "); + } + } + } } } else { System.out.println("Unknown message received."); @@ -1167,7 +1184,7 @@ public class Main { 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); } @@ -1201,7 +1218,7 @@ public class Main { 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" : "") + (pointer.getPreview().isPresent() ? " (Preview is available: " + pointer.getPreview().get().length + " bytes)" : "")); System.out.println(" Voice note: " + (pointer.getVoiceNote() ? "yes" : "no")); @@ -1226,44 +1243,7 @@ public class Main { 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 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); } } @@ -1310,6 +1290,10 @@ public class Main { 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(