From: AsamK Date: Sat, 16 Apr 2016 12:15:36 +0000 (+0200) Subject: Always save when sending messages X-Git-Tag: v0.4.0~18 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/800b92c4ba9f417b3a3a88929c61a66d86408d85?ds=inline Always save when sending messages --- diff --git a/src/main/java/org/asamk/signal/Manager.java b/src/main/java/org/asamk/signal/Manager.java index de37cc92..a38eed5a 100644 --- a/src/main/java/org/asamk/signal/Manager.java +++ b/src/main/java/org/asamk/signal/Manager.java @@ -548,36 +548,39 @@ class Manager implements Signal { private void sendMessage(SignalServiceDataMessage message, Collection recipients) throws IOException, EncapsulatedExceptions, UntrustedIdentityException { - SignalServiceMessageSender messageSender = new SignalServiceMessageSender(URL, TRUST_STORE, username, password, - deviceId, signalProtocolStore, USER_AGENT, Optional.absent()); + try { + SignalServiceMessageSender messageSender = new SignalServiceMessageSender(URL, TRUST_STORE, username, password, + deviceId, signalProtocolStore, USER_AGENT, Optional.absent()); - Set recipientsTS = new HashSet<>(recipients.size()); - for (String recipient : recipients) { - try { - recipientsTS.add(getPushAddress(recipient)); - } catch (InvalidNumberException e) { - System.err.println("Failed to add recipient \"" + recipient + "\": " + e.getMessage()); - System.err.println("Aborting sending."); - save(); - return; + Set recipientsTS = new HashSet<>(recipients.size()); + for (String recipient : recipients) { + try { + recipientsTS.add(getPushAddress(recipient)); + } catch (InvalidNumberException e) { + System.err.println("Failed to add recipient \"" + recipient + "\": " + e.getMessage()); + System.err.println("Aborting sending."); + save(); + return; + } } - } - if (message.getGroupInfo().isPresent()) { - messageSender.sendMessage(new ArrayList<>(recipientsTS), message); - } else { - // Send to all individually, so sync messages are sent correctly - for (SignalServiceAddress address : recipientsTS) { - messageSender.sendMessage(address, message); + if (message.getGroupInfo().isPresent()) { + messageSender.sendMessage(new ArrayList<>(recipientsTS), message); + } else { + // Send to all individually, so sync messages are sent correctly + for (SignalServiceAddress address : recipientsTS) { + messageSender.sendMessage(address, message); + } } - } - if (message.isEndSession()) { - for (SignalServiceAddress recipient : recipientsTS) { - handleEndSession(recipient.getNumber()); + if (message.isEndSession()) { + for (SignalServiceAddress recipient : recipientsTS) { + handleEndSession(recipient.getNumber()); + } } + } finally { + save(); } - save(); } private SignalServiceContent decryptMessage(SignalServiceEnvelope envelope) {