]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/Main.java
Implement requesting/sending groups when linking device
[signal-cli] / src / main / java / org / asamk / signal / Main.java
index 0d2e6f062fc2213a138ef8884cf3b4ab0e9ac9ba..9ffcb6608293078e0795d04201cb3386c5ab90fe 100644 (file)
@@ -40,6 +40,8 @@ import org.whispersystems.signalservice.api.util.PhoneNumberFormatter;
 
 import java.io.File;
 import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.security.Security;
 import java.util.ArrayList;
 import java.util.List;
@@ -177,6 +179,28 @@ public class Main {
                         System.exit(3);
                     }
                     break;
+                case "addDevice":
+                    if (dBusConn != null) {
+                        System.err.println("link is not yet implemented via dbus");
+                        System.exit(1);
+                    }
+                    if (!m.isRegistered()) {
+                        System.err.println("User is not registered.");
+                        System.exit(1);
+                    }
+                    try {
+                        m.addDeviceLink(new URI(ns.getString("uri")));
+                    } catch (IOException e) {
+                        e.printStackTrace();
+                        System.exit(3);
+                    } catch (InvalidKeyException e) {
+                        e.printStackTrace();
+                        System.exit(2);
+                    } catch (URISyntaxException e) {
+                        e.printStackTrace();
+                        System.exit(2);
+                    }
+                    break;
                 case "send":
                     if (dBusConn == null && !m.isRegistered()) {
                         System.err.println("User is not registered.");
@@ -462,6 +486,11 @@ public class Main {
         parserLink.addArgument("-n", "--name")
                 .help("Specify a name to describe this new device.");
 
+        Subparser parserAddDevice = subparsers.addParser("addDevice");
+        parserAddDevice.addArgument("--uri")
+                .required(true)
+                .help("Specify the uri contained in the QR code shown by the new device.");
+
         Subparser parserRegister = subparsers.addParser("register");
         parserRegister.addArgument("-v", "--voice")
                 .help("The verification should be done over voice, not sms.")
@@ -593,6 +622,7 @@ public class Main {
                         handleSignalServiceDataMessage(message, group);
                     }
                     if (content.getSyncMessage().isPresent()) {
+                        System.out.println("Received a sync message");
                         SignalServiceSyncMessage syncMessage = content.getSyncMessage().get();
 
                         if (syncMessage.getContacts().isPresent()) {