From: AsamK Date: Sat, 16 Apr 2016 13:03:23 +0000 (+0200) Subject: Implement removing linked devices X-Git-Tag: v0.4.0~16 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/08a217108a9b406dfd68907766c65da42420660e?ds=sidebyside Implement removing linked devices Only allowed from the master device --- diff --git a/src/main/java/org/asamk/signal/Main.java b/src/main/java/org/asamk/signal/Main.java index a6d36d0f..8aede3d6 100644 --- a/src/main/java/org/asamk/signal/Main.java +++ b/src/main/java/org/asamk/signal/Main.java @@ -224,6 +224,23 @@ public class Main { System.exit(3); } break; + case "removeDevice": + if (dBusConn != null) { + System.err.println("removeDevice is not yet implemented via dbus"); + System.exit(1); + } + if (!m.isRegistered()) { + System.err.println("User is not registered."); + System.exit(1); + } + try { + int deviceId = ns.getInt("deviceId"); + m.removeLinkedDevices(deviceId); + } catch (IOException e) { + e.printStackTrace(); + System.exit(3); + } + break; case "send": if (dBusConn == null && !m.isRegistered()) { System.err.println("User is not registered."); @@ -516,6 +533,12 @@ public class Main { Subparser parserDevices = subparsers.addParser("listDevices"); + Subparser parserRemoveDevice = subparsers.addParser("removeDevice"); + parserRemoveDevice.addArgument("-d", "--deviceId") + .type(int.class) + .required(true) + .help("Specify the device you want to remove. Use listDevices to see the deviceIds."); + Subparser parserRegister = subparsers.addParser("register"); parserRegister.addArgument("-v", "--voice") .help("The verification should be done over voice, not sms.") diff --git a/src/main/java/org/asamk/signal/Manager.java b/src/main/java/org/asamk/signal/Manager.java index 961be232..47699c3f 100644 --- a/src/main/java/org/asamk/signal/Manager.java +++ b/src/main/java/org/asamk/signal/Manager.java @@ -264,6 +264,10 @@ class Manager implements Signal { return accountManager.getDevices(); } + public void removeLinkedDevices(int deviceId) throws IOException { + accountManager.removeDevice(deviceId); + } + public static Map getQueryMap(String query) { String[] params = query.split("&"); Map map = new HashMap<>();