X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/e1134d832a1460cc5e1bcc7edf5e908bf013e0bd..c72aeed8bba4d5ca873b36b4edb2b8eda9c24ec7:/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java diff --git a/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java b/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java index 77341491..a2f6cace 100644 --- a/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java +++ b/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java @@ -45,9 +45,30 @@ public class DbusSignalImpl implements Signal { return sendMessage(message, attachments, recipients); } + private static void checkSendMessageResult(long timestamp, SendMessageResult result) throws DBusExecutionException { + String error = ErrorUtils.getErrorMessageFromSendMessageResult(result); + + if (error == null) { + return; + } + + final String message = timestamp + "\nFailed to send message:\n" + error + '\n'; + + if (result.getIdentityFailure() != null) { + throw new Error.UntrustedIdentity(message); + } else { + throw new Error.Failure(message); + } + } + private static void checkSendMessageResults( long timestamp, List results ) throws DBusExecutionException { + if (results.size() == 1) { + checkSendMessageResult(timestamp, results.get(0)); + return; + } + List errors = ErrorUtils.getErrorMessagesFromSendMessageResults(results); if (errors.size() == 0) { return; @@ -81,10 +102,10 @@ public class DbusSignalImpl implements Signal { @Override public long sendNoteToSelfMessage( final String message, final List attachments - ) throws Error.AttachmentInvalid, Error.Failure, Error.UnregisteredUser, Error.UntrustedIdentity { + ) throws Error.AttachmentInvalid, Error.Failure, Error.UntrustedIdentity { try { - final Pair> results = m.sendSelfMessage(message, attachments); - checkSendMessageResults(results.first(), results.second()); + final Pair results = m.sendSelfMessage(message, attachments); + checkSendMessageResult(results.first(), results.second()); return results.first(); } catch (AttachmentInvalidException e) { throw new Error.AttachmentInvalid(e.getMessage());