X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/800b92c4ba9f417b3a3a88929c61a66d86408d85..15568512b1400d3696e43880a674e5d63f078cd7:/src/main/java/org/asamk/signal/Manager.java diff --git a/src/main/java/org/asamk/signal/Manager.java b/src/main/java/org/asamk/signal/Manager.java index a38eed5a..3931f3e3 100644 --- a/src/main/java/org/asamk/signal/Manager.java +++ b/src/main/java/org/asamk/signal/Manager.java @@ -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 getLinkedDevices() throws IOException { + return accountManager.getDevices(); + } + + public void removeLinkedDevices(int deviceId) throws IOException { + accountManager.removeDevice(deviceId); + } public static Map getQueryMap(String query) { String[] params = query.split("&"); @@ -279,7 +290,7 @@ class Manager implements Signal { } public void addDeviceLink(URI linkUri) throws IOException, InvalidKeyException { - Map query = getQueryMap(linkUri.getQuery()); + Map 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();