]> nmode's Git Repositories - signal-cli/commitdiff
Return URI instead of String
authorAsamK <asamk@gmx.de>
Sun, 7 Mar 2021 13:50:33 +0000 (14:50 +0100)
committerAsamK <asamk@gmx.de>
Mon, 8 Mar 2021 20:21:51 +0000 (21:21 +0100)
lib/src/main/java/org/asamk/signal/manager/DeviceLinkInfo.java
lib/src/main/java/org/asamk/signal/manager/ProvisioningManager.java

index 82d8a37fb9722978d0a6de57d3c395c638133c71..1f9d10ff897248f61c08d8f5c1023fef27544ff2 100644 (file)
@@ -5,6 +5,7 @@ import org.whispersystems.libsignal.ecc.Curve;
 import org.whispersystems.libsignal.ecc.ECPublicKey;
 
 import java.net.URI;
+import java.net.URISyntaxException;
 import java.net.URLDecoder;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
@@ -61,11 +62,15 @@ public class DeviceLinkInfo {
         this.deviceKey = deviceKey;
     }
 
-    public String createDeviceLinkUri() {
+    public URI createDeviceLinkUri() {
         final var deviceKeyString = Base64.getEncoder().encodeToString(deviceKey.serialize()).replace("=", "");
-        return "tsdevice:/?uuid="
-                + URLEncoder.encode(deviceIdentifier, StandardCharsets.UTF_8)
-                + "&pub_key="
-                + URLEncoder.encode(deviceKeyString, StandardCharsets.UTF_8);
+        try {
+            return new URI("tsdevice:/?uuid="
+                    + URLEncoder.encode(deviceIdentifier, StandardCharsets.UTF_8)
+                    + "&pub_key="
+                    + URLEncoder.encode(deviceKeyString, StandardCharsets.UTF_8));
+        } catch (URISyntaxException e) {
+            throw new AssertionError(e);
+        }
     }
 }
index e53f1b99b2eef221d9b712c4ab815b446b763943..c88692120ed76bfa74a24ed66ca5923dc9c3c804 100644 (file)
@@ -38,6 +38,7 @@ import org.whispersystems.signalservice.internal.util.DynamicCredentialsProvider
 
 import java.io.File;
 import java.io.IOException;
+import java.net.URI;
 import java.util.concurrent.TimeoutException;
 
 public class ProvisioningManager {
@@ -86,7 +87,7 @@ public class ProvisioningManager {
         return new ProvisioningManager(pathConfig, serviceConfiguration, userAgent);
     }
 
-    public String getDeviceLinkUri() throws TimeoutException, IOException {
+    public URI getDeviceLinkUri() throws TimeoutException, IOException {
         var deviceUuid = accountManager.getNewDeviceUuid();
 
         return new DeviceLinkInfo(deviceUuid, identityKey.getPublicKey().getPublicKey()).createDeviceLinkUri();