X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/ef5d3a65f8de2ae8e17adfb7c307d88b0c04778a..9a1b348ed2d31ac63bf0ef6f64ad92a2f16d173c:/src/main/java/cli/Manager.java?ds=sidebyside diff --git a/src/main/java/cli/Manager.java b/src/main/java/cli/Manager.java index 730923ad..b15457af 100644 --- a/src/main/java/cli/Manager.java +++ b/src/main/java/cli/Manager.java @@ -50,7 +50,7 @@ import java.util.*; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -class Manager { +class Manager implements TextSecure { private final static String URL = "https://textsecure-service.whispersystems.org"; private final static TrustStore TRUST_STORE = new WhisperTrustStore(); @@ -270,6 +270,7 @@ class Manager { return new TextSecureAttachmentStream(attachmentStream, mime, attachmentSize, null); } + @Override public void sendGroupMessage(String messageText, List attachments, byte[] groupId) throws IOException, EncapsulatedExceptions, GroupNotFoundException, AttachmentInvalidException { @@ -305,7 +306,7 @@ class Manager { if (groupId == null) { // Create new group g = new GroupInfo(Util.getSecretBytes(16)); - g.members.add(getUsername()); + g.members.add(username); } else { g = getGroupInfo(groupId); } @@ -351,9 +352,17 @@ class Manager { return g.groupId; } + @Override + public void sendMessage(String message, List attachments, String recipient) + throws EncapsulatedExceptions, AttachmentInvalidException, IOException { + List recipients = new ArrayList<>(1); + recipients.add(recipient); + sendMessage(message, attachments, recipients); + } + public void sendMessage(String messageText, List attachments, Collection recipients) - throws IOException, EncapsulatedExceptions, GroupNotFoundException, AttachmentInvalidException { + throws IOException, EncapsulatedExceptions, AttachmentInvalidException { final TextSecureDataMessage.Builder messageBuilder = TextSecureDataMessage.newBuilder().withBody(messageText); if (attachments != null) { messageBuilder.withAttachments(getTextSecureAttachments(attachments)); @@ -394,6 +403,7 @@ class Manager { handleEndSession(recipient.getNumber()); } } + save(); } private TextSecureContent decryptMessage(TextSecureEnvelope envelope) { @@ -498,6 +508,7 @@ class Manager { } } } + save(); handler.handleMessage(envelope, content, group); } catch (TimeoutException e) { if (returnOnTimeout) @@ -505,7 +516,6 @@ class Manager { } catch (InvalidVersionException e) { System.err.println("Ignoring error: " + e.getMessage()); } - save(); } } finally { if (messagePipe != null) @@ -564,7 +574,7 @@ class Manager { return outputFile; } - public String canonicalizeNumber(String number) throws InvalidNumberException { + private String canonicalizeNumber(String number) throws InvalidNumberException { String localNumber = username; return PhoneNumberFormatter.formatNumber(number, localNumber); } @@ -574,15 +584,16 @@ class Manager { return new TextSecureAddress(e164number); } - public GroupInfo getGroupInfo(byte[] groupId) throws GroupNotFoundException { + private GroupInfo getGroupInfo(byte[] groupId) throws GroupNotFoundException { return groupStore.getGroup(groupId); } - public void setGroupInfo(GroupInfo group) { + private void setGroupInfo(GroupInfo group) { groupStore.updateGroup(group); } - public String getUsername() { - return username; + @Override + public boolean isRemote() { + return false; } }