]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/SignalControl.java
Add dbus SignalControl interface to register/verify/link accounts
[signal-cli] / src / main / java / org / asamk / SignalControl.java
diff --git a/src/main/java/org/asamk/SignalControl.java b/src/main/java/org/asamk/SignalControl.java
new file mode 100644 (file)
index 0000000..911ccb6
--- /dev/null
@@ -0,0 +1,56 @@
+package org.asamk;
+
+import org.freedesktop.dbus.DBusPath;
+import org.freedesktop.dbus.exceptions.DBusExecutionException;
+import org.freedesktop.dbus.interfaces.DBusInterface;
+
+import java.util.List;
+
+/**
+ * DBus interface for the org.asamk.SignalControl interface.
+ * Including emitted Signals and returned Errors.
+ */
+public interface SignalControl extends DBusInterface {
+
+    void register(
+            String number, boolean voiceVerification
+    ) throws Error.Failure, Error.InvalidNumber, Error.RequiresCaptcha;
+
+    void registerWithCaptcha(
+            String number, boolean voiceVerification, String captcha
+    ) throws Error.Failure, Error.InvalidNumber, Error.RequiresCaptcha;
+
+    void verify(String number, String verificationCode) throws Error.Failure, Error.InvalidNumber;
+
+    void verifyWithPin(String number, String verificationCode, String pin) throws Error.Failure, Error.InvalidNumber;
+
+    String link(String newDeviceName) throws Error.Failure;
+
+    public String version();
+
+    List<DBusPath> listAccounts();
+
+    interface Error {
+
+        class Failure extends DBusExecutionException {
+
+            public Failure(final String message) {
+                super(message);
+            }
+        }
+
+        class InvalidNumber extends DBusExecutionException {
+
+            public InvalidNumber(final String message) {
+                super(message);
+            }
+        }
+
+        class RequiresCaptcha extends DBusExecutionException {
+
+            public RequiresCaptcha(final String message) {
+                super(message);
+            }
+        }
+    }
+}