X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/28e192c519c59d97d70aea6fabe18927e1aff42a..1ff3f07ab56f4e9762e09bf88f3992ff92aff8fc:/src/main/java/cli/Main.java diff --git a/src/main/java/cli/Main.java b/src/main/java/cli/Main.java index 34f07a55..9a915dee 100644 --- a/src/main/java/cli/Main.java +++ b/src/main/java/cli/Main.java @@ -17,12 +17,15 @@ package cli; import net.sourceforge.argparse4j.ArgumentParsers; +import net.sourceforge.argparse4j.impl.Arguments; import net.sourceforge.argparse4j.inf.*; import org.apache.commons.io.IOUtils; import org.whispersystems.libaxolotl.InvalidVersionException; import org.whispersystems.textsecure.api.TextSecureMessageSender; import org.whispersystems.textsecure.api.crypto.UntrustedIdentityException; -import org.whispersystems.textsecure.api.messages.TextSecureMessage; +import org.whispersystems.textsecure.api.messages.TextSecureContent; +import org.whispersystems.textsecure.api.messages.TextSecureDataMessage; +import org.whispersystems.textsecure.api.messages.multidevice.TextSecureSyncMessage; import org.whispersystems.textsecure.api.push.TextSecureAddress; import java.io.IOException; @@ -43,9 +46,12 @@ public class Main { .description("valid subcommands") .help("additional help"); Subparser parserRegister = subparsers.addParser("register"); + parserRegister.addArgument("-v", "--voice") + .help("The verification should be done over voice, not sms.") + .action(Arguments.storeTrue()); Subparser parserVerify = subparsers.addParser("verify"); parserVerify.addArgument("verificationCode") - .help("The verification code you received via sms."); + .help("The verification code you received via sms or voice call."); Subparser parserSend = subparsers.addParser("send"); parserSend.addArgument("recipient") .help("Specify the recipients' phone number.") @@ -80,7 +86,7 @@ public class Main { m.createNewIdentity(); } try { - m.register(); + m.register(ns.getBoolean("voice")); } catch (IOException e) { System.out.println("Request verify error: " + e.getMessage()); System.exit(3); @@ -117,7 +123,7 @@ public class Main { System.exit(1); } } - TextSecureMessage message = TextSecureMessage.newBuilder().withBody(messageText).build(); + TextSecureDataMessage message = TextSecureDataMessage.newBuilder().withBody(messageText).build(); for (String recipient : ns.getList("recipient")) { try { messageSender.sendMessage(new TextSecureAddress(recipient), message); @@ -132,11 +138,23 @@ public class Main { System.exit(1); } try { - message = m.receiveMessage(); - if (message == null) { - System.exit(0); - } else { - System.out.println("Received message: " + message.getBody().get()); + TextSecureContent content = m.receiveMessage(); + if (content.getDataMessage().isPresent()) { + message = content.getDataMessage().get(); + if (message == null) { + System.exit(0); + } else { + System.out.println("Received message: " + message.getBody().get()); + } + } + if (content.getSyncMessage().isPresent()) { + TextSecureSyncMessage syncMessage = content.getSyncMessage().get(); + + if (syncMessage == null) { + System.exit(0); + } else { + System.out.println("Received sync message"); + } } } catch (IOException | InvalidVersionException e) { System.out.println("Receive message: " + e.getMessage());