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;
.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.")
m.createNewIdentity();
}
try {
- m.register();
+ m.register(ns.getBoolean("voice"));
} catch (IOException e) {
System.out.println("Request verify error: " + e.getMessage());
System.exit(3);
System.exit(1);
}
}
- TextSecureMessage message = TextSecureMessage.newBuilder().withBody(messageText).build();
+ TextSecureDataMessage message = TextSecureDataMessage.newBuilder().withBody(messageText).build();
for (String recipient : ns.<String>getList("recipient")) {
try {
messageSender.sendMessage(new TextSecureAddress(recipient), message);
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());