X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/8717665d1d273a32afef136c15c0d5abaaae0f85..e63e6e1fa2b90ba68a5351029a365bf477393301:/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 afd5a515..de076a87 100644 --- a/src/main/java/org/asamk/signal/Main.java +++ b/src/main/java/org/asamk/signal/Main.java @@ -397,6 +397,13 @@ public class Main { System.out.println(); } }); + dBusConn.addSigHandler(Signal.ReceiptReceived.class, new DBusSigHandler() { + @Override + public void handle(Signal.ReceiptReceived s) { + System.out.print(String.format("Receipt from: %s\nTimestamp: %s\n", + s.getSender(), formatTimestamp(s.getTimestamp()))); + } + }); } catch (UnsatisfiedLinkError e) { System.err.println("Missing native library dependency for dbus service: " + e.getMessage()); return 1; @@ -1005,13 +1012,10 @@ public class Main { } if (syncMessage.getVerified().isPresent()) { System.out.println("Received sync message with verified identities:"); - final List verifiedList = syncMessage.getVerified().get(); - for (VerifiedMessage v : verifiedList) { - System.out.println(" - " + v.getDestination() + ": " + v.getVerified()); - String safetyNumber = formatSafetyNumber(m.computeSafetyNumber(v.getDestination(), v.getIdentityKey())); - System.out.println(" " + safetyNumber); - } - + final VerifiedMessage verifiedMessage = syncMessage.getVerified().get(); + System.out.println(" - " + verifiedMessage.getDestination() + ": " + verifiedMessage.getVerified()); + String safetyNumber = formatSafetyNumber(m.computeSafetyNumber(verifiedMessage.getDestination(), verifiedMessage.getIdentityKey())); + System.out.println(" " + safetyNumber); } } } @@ -1098,7 +1102,17 @@ public class Main { public void handleMessage(SignalServiceEnvelope envelope, SignalServiceContent content, Throwable exception) { super.handleMessage(envelope, content, exception); - if (!envelope.isReceipt() && content != null && content.getDataMessage().isPresent()) { + 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() &&