]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/Main.java
Refactor to use GroupId class to wrap the byte array
[signal-cli] / src / main / java / org / asamk / signal / Main.java
index 16d9e0dcef5cfd77f45e4df0a4492fcdc38109d6..de827b1c284fcab49e74e05c28134a61fff72685 100644 (file)
@@ -32,6 +32,7 @@ import org.asamk.signal.commands.DbusCommand;
 import org.asamk.signal.commands.ExtendedDbusCommand;
 import org.asamk.signal.commands.LocalCommand;
 import org.asamk.signal.commands.ProvisioningCommand;
+import org.asamk.signal.dbus.DbusSignalImpl;
 import org.asamk.signal.manager.Manager;
 import org.asamk.signal.manager.ProvisioningManager;
 import org.asamk.signal.manager.ServiceConfig;
@@ -42,6 +43,7 @@ import org.freedesktop.dbus.connections.impl.DBusConnection;
 import org.freedesktop.dbus.exceptions.DBusException;
 import org.whispersystems.signalservice.api.push.exceptions.AuthorizationFailedException;
 import org.whispersystems.signalservice.api.util.PhoneNumberFormatter;
+import org.whispersystems.signalservice.internal.configuration.SignalServiceConfiguration;
 
 import java.io.File;
 import java.io.IOException;
@@ -82,8 +84,8 @@ public class Main {
                     busType = DBusConnection.DBusBusType.SESSION;
                 }
                 try (DBusConnection dBusConn = DBusConnection.getConnection(busType)) {
-                    Signal ts = dBusConn.getRemoteObject(
-                            DbusConfig.SIGNAL_BUSNAME, DbusConfig.SIGNAL_OBJECTPATH,
+                    Signal ts = dBusConn.getRemoteObject(DbusConfig.SIGNAL_BUSNAME,
+                            DbusConfig.SIGNAL_OBJECTPATH,
                             Signal.class);
 
                     return handleCommands(ns, ts, dBusConn);
@@ -101,14 +103,22 @@ public class Main {
                 dataPath = getDefaultDataPath();
             }
 
+            final SignalServiceConfiguration serviceConfiguration = ServiceConfig.createDefaultServiceConfiguration(
+                    BaseConfig.USER_AGENT);
+
+            if (!ServiceConfig.getCapabilities().isGv2()) {
+                System.err.println("WARNING: Support for new group V2 is disabled,"
+                        + " because the required native library dependency is missing: libzkgroup");
+            }
+
             if (username == null) {
-                ProvisioningManager pm = new ProvisioningManager(dataPath, ServiceConfig.createDefaultServiceConfiguration(BaseConfig.USER_AGENT), BaseConfig.USER_AGENT);
+                ProvisioningManager pm = new ProvisioningManager(dataPath, serviceConfiguration, BaseConfig.USER_AGENT);
                 return handleCommands(ns, pm);
             }
 
             Manager manager;
             try {
-                manager = Manager.init(username, dataPath, ServiceConfig.createDefaultServiceConfiguration(BaseConfig.USER_AGENT), BaseConfig.USER_AGENT);
+                manager = Manager.init(username, dataPath, serviceConfiguration, BaseConfig.USER_AGENT);
             } catch (Throwable e) {
                 System.err.println("Error loading state file: " + e.getMessage());
                 return 2;
@@ -179,7 +189,7 @@ public class Main {
             if (command instanceof LocalCommand) {
                 return ((LocalCommand) command).handleCommand(ns, m);
             } else if (command instanceof DbusCommand) {
-                return ((DbusCommand) command).handleCommand(ns, m);
+                return ((DbusCommand) command).handleCommand(ns, new DbusSignalImpl(m));
             } else if (command instanceof ExtendedDbusCommand) {
                 System.err.println(commandKey + " only works via dbus");
             }
@@ -221,21 +231,14 @@ public class Main {
                 .description("Commandline interface for Signal.")
                 .version(BaseConfig.PROJECT_NAME + " " + BaseConfig.PROJECT_VERSION);
 
-        parser.addArgument("-v", "--version")
-                .help("Show package version.")
-                .action(Arguments.version());
+        parser.addArgument("-v", "--version").help("Show package version.").action(Arguments.version());
         parser.addArgument("--config")
                 .help("Set the path, where to store the config (Default: $XDG_DATA_HOME/signal-cli , $HOME/.local/share/signal-cli).");
 
         MutuallyExclusiveGroup mut = parser.addMutuallyExclusiveGroup();
-        mut.addArgument("-u", "--username")
-                .help("Specify your phone number, that will be used for verification.");
-        mut.addArgument("--dbus")
-                .help("Make request via user dbus.")
-                .action(Arguments.storeTrue());
-        mut.addArgument("--dbus-system")
-                .help("Make request via system dbus.")
-                .action(Arguments.storeTrue());
+        mut.addArgument("-u", "--username").help("Specify your phone number, that will be used for verification.");
+        mut.addArgument("--dbus").help("Make request via user dbus.").action(Arguments.storeTrue());
+        mut.addArgument("--dbus-system").help("Make request via system dbus.").action(Arguments.storeTrue());
 
         Subparsers subparsers = parser.addSubparsers()
                 .title("subcommands")