]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/Manager.java
Fix addDevice
[signal-cli] / src / main / java / org / asamk / signal / Manager.java
index a38eed5a3acc4970864e161b61b17c589e87233d..3931f3e31928ac5d6513b9e9c0372ed370c0607e 100644 (file)
@@ -79,7 +79,7 @@ class Manager implements Signal {
 
     private final ObjectMapper jsonProcessot = new ObjectMapper();
     private String username;
-    int deviceId = SignalServiceAddress.DEFAULT_DEVICE_ID;
+    private int deviceId = SignalServiceAddress.DEFAULT_DEVICE_ID;
     private String password;
     private String signalingKey;
     private int preKeyIdOffset;
@@ -107,6 +107,10 @@ class Manager implements Signal {
         return username;
     }
 
+    public int getDeviceId() {
+        return deviceId;
+    }
+
     public String getFileName() {
         new File(dataPath).mkdirs();
         return dataPath + "/" + username;
@@ -256,6 +260,13 @@ class Manager implements Signal {
         save();
     }
 
+    public List<DeviceInfo> getLinkedDevices() throws IOException {
+        return accountManager.getDevices();
+    }
+
+    public void removeLinkedDevices(int deviceId) throws IOException {
+        accountManager.removeDevice(deviceId);
+    }
 
     public static Map<String, String> getQueryMap(String query) {
         String[] params = query.split("&");
@@ -279,7 +290,7 @@ class Manager implements Signal {
     }
 
     public void addDeviceLink(URI linkUri) throws IOException, InvalidKeyException {
-        Map<String, String> query = getQueryMap(linkUri.getQuery());
+        Map<String, String> query = getQueryMap(linkUri.getRawQuery());
         String deviceIdentifier = query.get("uuid");
         String publicKeyEncoded = query.get("pub_key");
 
@@ -289,10 +300,10 @@ class Manager implements Signal {
 
         ECPublicKey deviceKey = Curve.decodePoint(Base64.decode(publicKeyEncoded), 0);
 
-        addDeviceLink(deviceIdentifier, deviceKey);
+        addDevice(deviceIdentifier, deviceKey);
     }
 
-    private void addDeviceLink(String deviceIdentifier, ECPublicKey deviceKey) throws IOException, InvalidKeyException {
+    private void addDevice(String deviceIdentifier, ECPublicKey deviceKey) throws IOException, InvalidKeyException {
         IdentityKeyPair identityKeyPair = signalProtocolStore.getIdentityKeyPair();
         String verificationCode = accountManager.getNewDeviceVerificationCode();