]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/Main.java
Add command to update account attributes
[signal-cli] / src / main / java / org / asamk / signal / Main.java
index 7d89d4802e9eb946f3174d87eb974b4c68f40d5b..2377e12581dde1774d9dd726ffe257d4146505cb 100644 (file)
@@ -88,6 +88,9 @@ public class Main {
                     ts = (Signal) dBusConn.getRemoteObject(
                             SIGNAL_BUSNAME, SIGNAL_OBJECTPATH,
                             Signal.class);
+                } catch (UnsatisfiedLinkError e) {
+                    System.err.println("Missing native library dependency for dbus service: " + e.getMessage());
+                    return 1;
                 } catch (DBusException e) {
                     e.printStackTrace();
                     if (dBusConn != null) {
@@ -135,6 +138,38 @@ public class Main {
                         return 3;
                     }
                     break;
+                case "unregister":
+                    if (dBusConn != null) {
+                        System.err.println("unregister is not yet implemented via dbus");
+                        return 1;
+                    }
+                    if (!m.isRegistered()) {
+                        System.err.println("User is not registered.");
+                        return 1;
+                    }
+                    try {
+                        m.unregister();
+                    } catch (IOException e) {
+                        System.err.println("Unregister error: " + e.getMessage());
+                        return 3;
+                    }
+                    break;
+                case "updateAccount":
+                    if (dBusConn != null) {
+                        System.err.println("updateAccount is not yet implemented via dbus");
+                        return 1;
+                    }
+                    if (!m.isRegistered()) {
+                        System.err.println("User is not registered.");
+                        return 1;
+                    }
+                    try {
+                        m.updateAccountAttributes();
+                    } catch (IOException e) {
+                        System.err.println("UpdateAccount error: " + e.getMessage());
+                        return 3;
+                    }
+                    break;
                 case "verify":
                     if (dBusConn != null) {
                         System.err.println("verify is not yet implemented via dbus");
@@ -350,6 +385,9 @@ public class Main {
                                     System.out.println();
                                 }
                             });
+                        } catch (UnsatisfiedLinkError e) {
+                            System.err.println("Missing native library dependency for dbus service: " + e.getMessage());
+                            return 1;
                         } catch (DBusException e) {
                             e.printStackTrace();
                             return 1;
@@ -546,6 +584,9 @@ public class Main {
                             conn = DBusConnection.getConnection(busType);
                             conn.exportObject(SIGNAL_OBJECTPATH, m);
                             conn.requestBusName(SIGNAL_BUSNAME);
+                        } catch (UnsatisfiedLinkError e) {
+                            System.err.println("Missing native library dependency for dbus service: " + e.getMessage());
+                            return 1;
                         } catch (DBusException e) {
                             e.printStackTrace();
                             return 2;
@@ -670,6 +711,12 @@ public class Main {
                 .help("The verification should be done over voice, not sms.")
                 .action(Arguments.storeTrue());
 
+        Subparser parserUnregister = subparsers.addParser("unregister");
+        parserUnregister.help("Unregister the current device from the signal server.");
+
+        Subparser parserUpdateAccount = subparsers.addParser("updateAccount");
+        parserUpdateAccount.help("Update the account attributes on the signal server.");
+
         Subparser parserVerify = subparsers.addParser("verify");
         parserVerify.addArgument("verificationCode")
                 .help("The verification code you received via sms or voice call.");