]> nmode's Git Repositories - signal-cli/commitdiff
Refactor addDeviceLink method
authorAsamK <asamk@gmx.de>
Sun, 21 May 2023 20:54:51 +0000 (22:54 +0200)
committerAsamK <asamk@gmx.de>
Tue, 23 May 2023 17:34:13 +0000 (19:34 +0200)
graalvm-config-dir/reflect-config.json
lib/src/main/java/org/asamk/signal/manager/Manager.java
lib/src/main/java/org/asamk/signal/manager/api/DeviceLinkUrl.java [moved from lib/src/main/java/org/asamk/signal/manager/internal/DeviceLinkInfo.java with 84% similarity]
lib/src/main/java/org/asamk/signal/manager/helper/AccountHelper.java
lib/src/main/java/org/asamk/signal/manager/internal/ManagerImpl.java
lib/src/main/java/org/asamk/signal/manager/internal/ProvisioningManagerImpl.java
src/main/java/org/asamk/signal/commands/AddDeviceCommand.java
src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java
src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java

index 240edebd2859f2c9c2885f671a2f91a2ec0f6c14..32827631f79208414448d0c8b6a68edd964735de 100644 (file)
   "name":"org.whispersystems.signalservice.internal.push.DeviceCode",
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
   "name":"org.whispersystems.signalservice.internal.push.DeviceCode",
   "allDeclaredFields":true,
   "allDeclaredMethods":true,
-  "allDeclaredConstructors":true
+  "allDeclaredConstructors":true,
+  "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.DeviceId",
 },
 {
   "name":"org.whispersystems.signalservice.internal.push.DeviceId",
index 2e23564ba703f1e3b89eb86c359eb6d8a2fd6a06..884871c6aea9761f8c661272b8224655404286ac 100644 (file)
@@ -4,6 +4,7 @@ import org.asamk.signal.manager.api.AlreadyReceivingException;
 import org.asamk.signal.manager.api.AttachmentInvalidException;
 import org.asamk.signal.manager.api.Configuration;
 import org.asamk.signal.manager.api.Device;
 import org.asamk.signal.manager.api.AttachmentInvalidException;
 import org.asamk.signal.manager.api.Configuration;
 import org.asamk.signal.manager.api.Device;
+import org.asamk.signal.manager.api.DeviceLinkUrl;
 import org.asamk.signal.manager.api.Group;
 import org.asamk.signal.manager.api.GroupId;
 import org.asamk.signal.manager.api.GroupInviteLinkUrl;
 import org.asamk.signal.manager.api.Group;
 import org.asamk.signal.manager.api.GroupId;
 import org.asamk.signal.manager.api.GroupInviteLinkUrl;
@@ -42,7 +43,6 @@ import java.io.Closeable;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
-import java.net.URI;
 import java.time.Duration;
 import java.util.Collection;
 import java.util.List;
 import java.time.Duration;
 import java.util.Collection;
 import java.util.List;
@@ -116,7 +116,7 @@ public interface Manager extends Closeable {
 
     void removeLinkedDevices(int deviceId) throws IOException;
 
 
     void removeLinkedDevices(int deviceId) throws IOException;
 
-    void addDeviceLink(URI linkUri) throws IOException, InvalidDeviceLinkException;
+    void addDeviceLink(DeviceLinkUrl linkUri) throws IOException, InvalidDeviceLinkException;
 
     void setRegistrationLockPin(Optional<String> pin) throws IOException, NotPrimaryDeviceException;
 
 
     void setRegistrationLockPin(Optional<String> pin) throws IOException, NotPrimaryDeviceException;
 
similarity index 84%
rename from lib/src/main/java/org/asamk/signal/manager/internal/DeviceLinkInfo.java
rename to lib/src/main/java/org/asamk/signal/manager/api/DeviceLinkUrl.java
index 50f04026420432b9b96c1b6585946b312f4aa538..54271dac58784b3c479545f090cf20438da3899d 100644 (file)
@@ -1,6 +1,5 @@
-package org.asamk.signal.manager.internal;
+package org.asamk.signal.manager.api;
 
 
-import org.asamk.signal.manager.api.InvalidDeviceLinkException;
 import org.asamk.signal.manager.util.Utils;
 import org.signal.libsignal.protocol.InvalidKeyException;
 import org.signal.libsignal.protocol.ecc.Curve;
 import org.asamk.signal.manager.util.Utils;
 import org.signal.libsignal.protocol.InvalidKeyException;
 import org.signal.libsignal.protocol.ecc.Curve;
@@ -14,9 +13,9 @@ import java.util.Base64;
 
 import static org.whispersystems.signalservice.internal.util.Util.isEmpty;
 
 
 import static org.whispersystems.signalservice.internal.util.Util.isEmpty;
 
-public record DeviceLinkInfo(String deviceIdentifier, ECPublicKey deviceKey) {
+public record DeviceLinkUrl(String deviceIdentifier, ECPublicKey deviceKey) {
 
 
-    public static DeviceLinkInfo parseDeviceLinkUri(URI linkUri) throws InvalidDeviceLinkException {
+    public static DeviceLinkUrl parseDeviceLinkUri(URI linkUri) throws InvalidDeviceLinkException {
         final var rawQuery = linkUri.getRawQuery();
         if (isEmpty(rawQuery)) {
             throw new RuntimeException("Invalid device link uri");
         final var rawQuery = linkUri.getRawQuery();
         if (isEmpty(rawQuery)) {
             throw new RuntimeException("Invalid device link uri");
@@ -43,7 +42,7 @@ public record DeviceLinkInfo(String deviceIdentifier, ECPublicKey deviceKey) {
             throw new InvalidDeviceLinkException("Invalid device link", e);
         }
 
             throw new InvalidDeviceLinkException("Invalid device link", e);
         }
 
-        return new DeviceLinkInfo(deviceIdentifier, deviceKey);
+        return new DeviceLinkUrl(deviceIdentifier, deviceKey);
     }
 
     public URI createDeviceLinkUri() {
     }
 
     public URI createDeviceLinkUri() {
index 286e477e02820604195ea0c8156af3d30d1e73ec..edca4f9726602c9d86ee26ec25d44bd4a5fa1db1 100644 (file)
@@ -1,12 +1,12 @@
 package org.asamk.signal.manager.helper;
 
 import org.asamk.signal.manager.api.CaptchaRequiredException;
 package org.asamk.signal.manager.helper;
 
 import org.asamk.signal.manager.api.CaptchaRequiredException;
+import org.asamk.signal.manager.api.DeviceLinkUrl;
 import org.asamk.signal.manager.api.IncorrectPinException;
 import org.asamk.signal.manager.api.InvalidDeviceLinkException;
 import org.asamk.signal.manager.api.NonNormalizedPhoneNumberException;
 import org.asamk.signal.manager.api.PinLockedException;
 import org.asamk.signal.manager.api.RateLimitException;
 import org.asamk.signal.manager.api.IncorrectPinException;
 import org.asamk.signal.manager.api.InvalidDeviceLinkException;
 import org.asamk.signal.manager.api.NonNormalizedPhoneNumberException;
 import org.asamk.signal.manager.api.PinLockedException;
 import org.asamk.signal.manager.api.RateLimitException;
-import org.asamk.signal.manager.internal.DeviceLinkInfo;
 import org.asamk.signal.manager.internal.SignalDependencies;
 import org.asamk.signal.manager.storage.SignalAccount;
 import org.asamk.signal.manager.util.KeyUtils;
 import org.asamk.signal.manager.internal.SignalDependencies;
 import org.asamk.signal.manager.storage.SignalAccount;
 import org.asamk.signal.manager.util.KeyUtils;
@@ -267,7 +267,7 @@ public class AccountHelper {
         dependencies.getAccountManager().setAccountAttributes(account.getAccountAttributes(null));
     }
 
         dependencies.getAccountManager().setAccountAttributes(account.getAccountAttributes(null));
     }
 
-    public void addDevice(DeviceLinkInfo deviceLinkInfo) throws IOException, InvalidDeviceLinkException {
+    public void addDevice(DeviceLinkUrl deviceLinkInfo) throws IOException, InvalidDeviceLinkException {
         var verificationCode = dependencies.getAccountManager().getNewDeviceVerificationCode();
 
         try {
         var verificationCode = dependencies.getAccountManager().getNewDeviceVerificationCode();
 
         try {
index 7e6a3972fed3ce69ceb6110c36ccdc2d2b2350ad..9147eae19274693ace82e213c8fe887f7c2f6cdf 100644 (file)
@@ -21,6 +21,7 @@ import org.asamk.signal.manager.api.AlreadyReceivingException;
 import org.asamk.signal.manager.api.AttachmentInvalidException;
 import org.asamk.signal.manager.api.Configuration;
 import org.asamk.signal.manager.api.Device;
 import org.asamk.signal.manager.api.AttachmentInvalidException;
 import org.asamk.signal.manager.api.Configuration;
 import org.asamk.signal.manager.api.Device;
+import org.asamk.signal.manager.api.DeviceLinkUrl;
 import org.asamk.signal.manager.api.Group;
 import org.asamk.signal.manager.api.GroupId;
 import org.asamk.signal.manager.api.GroupInviteLinkUrl;
 import org.asamk.signal.manager.api.Group;
 import org.asamk.signal.manager.api.GroupId;
 import org.asamk.signal.manager.api.GroupInviteLinkUrl;
@@ -91,7 +92,6 @@ import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
-import java.net.URI;
 import java.nio.charset.StandardCharsets;
 import java.time.Duration;
 import java.util.ArrayList;
 import java.nio.charset.StandardCharsets;
 import java.time.Duration;
 import java.util.ArrayList;
@@ -359,9 +359,8 @@ public class ManagerImpl implements Manager {
     }
 
     @Override
     }
 
     @Override
-    public void addDeviceLink(URI linkUri) throws IOException, InvalidDeviceLinkException {
-        var deviceLinkInfo = DeviceLinkInfo.parseDeviceLinkUri(linkUri);
-        context.getAccountHelper().addDevice(deviceLinkInfo);
+    public void addDeviceLink(DeviceLinkUrl linkUrl) throws IOException, InvalidDeviceLinkException {
+        context.getAccountHelper().addDevice(linkUrl);
     }
 
     @Override
     }
 
     @Override
index d372a27ec468107bdfd0cbd13db50b0b81eb80c0..113c2856b2257325379f138a185cba86a19b2522 100644 (file)
@@ -19,6 +19,7 @@ package org.asamk.signal.manager.internal;
 import org.asamk.signal.manager.Manager;
 import org.asamk.signal.manager.ProvisioningManager;
 import org.asamk.signal.manager.Settings;
 import org.asamk.signal.manager.Manager;
 import org.asamk.signal.manager.ProvisioningManager;
 import org.asamk.signal.manager.Settings;
+import org.asamk.signal.manager.api.DeviceLinkUrl;
 import org.asamk.signal.manager.api.UserAlreadyExistsException;
 import org.asamk.signal.manager.config.ServiceConfig;
 import org.asamk.signal.manager.config.ServiceEnvironmentConfig;
 import org.asamk.signal.manager.api.UserAlreadyExistsException;
 import org.asamk.signal.manager.config.ServiceConfig;
 import org.asamk.signal.manager.config.ServiceEnvironmentConfig;
@@ -97,7 +98,7 @@ public class ProvisioningManagerImpl implements ProvisioningManager {
     public URI getDeviceLinkUri() throws TimeoutException, IOException {
         var deviceUuid = accountManager.getNewDeviceUuid();
 
     public URI getDeviceLinkUri() throws TimeoutException, IOException {
         var deviceUuid = accountManager.getNewDeviceUuid();
 
-        return new DeviceLinkInfo(deviceUuid, tempIdentityKey.getPublicKey().getPublicKey()).createDeviceLinkUri();
+        return new DeviceLinkUrl(deviceUuid, tempIdentityKey.getPublicKey().getPublicKey()).createDeviceLinkUri();
     }
 
     @Override
     }
 
     @Override
index eb218c7003d6881a8af9b837c3ce82f40f006eb8..0895601a452143cfa5d3e91e9394f600587ce98b 100644 (file)
@@ -7,6 +7,7 @@ import org.asamk.signal.commands.exceptions.CommandException;
 import org.asamk.signal.commands.exceptions.IOErrorException;
 import org.asamk.signal.commands.exceptions.UserErrorException;
 import org.asamk.signal.manager.Manager;
 import org.asamk.signal.commands.exceptions.IOErrorException;
 import org.asamk.signal.commands.exceptions.UserErrorException;
 import org.asamk.signal.manager.Manager;
+import org.asamk.signal.manager.api.DeviceLinkUrl;
 import org.asamk.signal.manager.api.InvalidDeviceLinkException;
 import org.asamk.signal.output.OutputWriter;
 import org.slf4j.Logger;
 import org.asamk.signal.manager.api.InvalidDeviceLinkException;
 import org.asamk.signal.output.OutputWriter;
 import org.slf4j.Logger;
@@ -45,7 +46,8 @@ public class AddDeviceCommand implements JsonRpcLocalCommand {
         }
 
         try {
         }
 
         try {
-            m.addDeviceLink(linkUri);
+            var deviceLinkUrl = DeviceLinkUrl.parseDeviceLinkUri(linkUri);
+            m.addDeviceLink(deviceLinkUrl);
         } catch (IOException e) {
             logger.error("Add device link failed", e);
             throw new IOErrorException("Add device link failed", e);
         } catch (IOException e) {
             logger.error("Add device link failed", e);
             throw new IOErrorException("Add device link failed", e);
index 1873bfd02bf9cf2940645e6d2aad1a0b67fa33f2..2871ad5d82e2d44ff6bce61fe8ac3e872043f1ab 100644 (file)
@@ -7,6 +7,7 @@ import org.asamk.signal.manager.api.AttachmentInvalidException;
 import org.asamk.signal.manager.api.Configuration;
 import org.asamk.signal.manager.api.Contact;
 import org.asamk.signal.manager.api.Device;
 import org.asamk.signal.manager.api.Configuration;
 import org.asamk.signal.manager.api.Contact;
 import org.asamk.signal.manager.api.Device;
+import org.asamk.signal.manager.api.DeviceLinkUrl;
 import org.asamk.signal.manager.api.Group;
 import org.asamk.signal.manager.api.GroupId;
 import org.asamk.signal.manager.api.GroupInviteLinkUrl;
 import org.asamk.signal.manager.api.Group;
 import org.asamk.signal.manager.api.GroupId;
 import org.asamk.signal.manager.api.GroupInviteLinkUrl;
@@ -199,8 +200,8 @@ public class DbusManagerImpl implements Manager {
     }
 
     @Override
     }
 
     @Override
-    public void addDeviceLink(final URI linkUri) throws IOException, InvalidDeviceLinkException {
-        signal.addDevice(linkUri.toString());
+    public void addDeviceLink(final DeviceLinkUrl linkUri) throws IOException, InvalidDeviceLinkException {
+        signal.addDevice(linkUri.createDeviceLinkUri().toString());
     }
 
     @Override
     }
 
     @Override
index db7253bdd511fa3fa69900d1013cb1e69320e49e..afc4e03d3ef771e281d85ae4866f076a6d09728e 100644 (file)
@@ -4,6 +4,7 @@ import org.asamk.Signal;
 import org.asamk.signal.BaseConfig;
 import org.asamk.signal.manager.Manager;
 import org.asamk.signal.manager.api.AttachmentInvalidException;
 import org.asamk.signal.BaseConfig;
 import org.asamk.signal.manager.Manager;
 import org.asamk.signal.manager.api.AttachmentInvalidException;
+import org.asamk.signal.manager.api.DeviceLinkUrl;
 import org.asamk.signal.manager.api.GroupId;
 import org.asamk.signal.manager.api.GroupInviteLinkUrl;
 import org.asamk.signal.manager.api.GroupLinkState;
 import org.asamk.signal.manager.api.GroupId;
 import org.asamk.signal.manager.api.GroupInviteLinkUrl;
 import org.asamk.signal.manager.api.GroupLinkState;
@@ -173,7 +174,8 @@ public class DbusSignalImpl implements Signal {
     @Override
     public void addDevice(String uri) {
         try {
     @Override
     public void addDevice(String uri) {
         try {
-            m.addDeviceLink(new URI(uri));
+            var deviceLinkUrl = DeviceLinkUrl.parseDeviceLinkUri(new URI(uri));
+            m.addDeviceLink(deviceLinkUrl);
         } catch (IOException | InvalidDeviceLinkException e) {
             throw new Error.Failure(e.getClass().getSimpleName() + " Add device link failed. " + e.getMessage());
         } catch (URISyntaxException e) {
         } catch (IOException | InvalidDeviceLinkException e) {
             throw new Error.Failure(e.getClass().getSimpleName() + " Add device link failed. " + e.getMessage());
         } catch (URISyntaxException e) {