]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java
Switch to a less cpu intensive function to check if libsignal-client is available
[signal-cli] / src / main / java / org / asamk / signal / dbus / DbusManagerImpl.java
index 73c17f07185f000432de19bb27faa5af577b6a90..cec835fcca9537cff82f20f13c9d6eecdc753537 100644 (file)
@@ -18,6 +18,8 @@ import org.asamk.signal.manager.api.Pair;
 import org.asamk.signal.manager.api.RecipientIdentifier;
 import org.asamk.signal.manager.api.SendGroupMessageResults;
 import org.asamk.signal.manager.api.SendMessageResults;
+import org.asamk.signal.manager.api.StickerPack;
+import org.asamk.signal.manager.api.StickerPackUrl;
 import org.asamk.signal.manager.api.TypingAction;
 import org.asamk.signal.manager.api.UpdateGroup;
 import org.asamk.signal.manager.groups.GroupId;
@@ -171,7 +173,7 @@ public class DbusManagerImpl implements Manager {
         return signal.listDevices().stream().map(d -> {
             final var device = getRemoteObject(d.getObjectPath(),
                     Signal.Device.class).GetAll("org.asamk.Signal.Device");
-            return new Device((long) device.get("Id").getValue(),
+            return new Device(((Long) device.get("Id").getValue()).intValue(),
                     (String) device.get("Name").getValue(),
                     (long) device.get("Created").getValue(),
                     (long) device.get("LastSeen").getValue(),
@@ -180,7 +182,7 @@ public class DbusManagerImpl implements Manager {
     }
 
     @Override
-    public void removeLinkedDevices(final long deviceId) throws IOException {
+    public void removeLinkedDevices(final int deviceId) throws IOException {
         final var devicePath = signal.getDevice(deviceId);
         getRemoteObject(devicePath, Signal.Device.class).removeDevice();
     }
@@ -392,12 +394,12 @@ public class DbusManagerImpl implements Manager {
     }
 
     @Override
-    public void deleteRecipient(final RecipientIdentifier.Single recipient) throws IOException {
+    public void deleteRecipient(final RecipientIdentifier.Single recipient) {
         signal.deleteRecipient(recipient.getIdentifier());
     }
 
     @Override
-    public void deleteContact(final RecipientIdentifier.Single recipient) throws IOException {
+    public void deleteContact(final RecipientIdentifier.Single recipient) {
         signal.deleteContact(recipient.getIdentifier());
     }
 
@@ -435,14 +437,19 @@ public class DbusManagerImpl implements Manager {
     }
 
     @Override
-    public URI uploadStickerPack(final File path) throws IOException, StickerPackInvalidException {
+    public StickerPackUrl uploadStickerPack(final File path) throws IOException, StickerPackInvalidException {
         try {
-            return new URI(signal.uploadStickerPack(path.getPath()));
-        } catch (URISyntaxException e) {
+            return StickerPackUrl.fromUri(new URI(signal.uploadStickerPack(path.getPath())));
+        } catch (URISyntaxException | StickerPackUrl.InvalidStickerPackLinkException e) {
             throw new AssertionError(e);
         }
     }
 
+    @Override
+    public List<StickerPack> getStickerPacks() {
+        throw new UnsupportedOperationException();
+    }
+
     @Override
     public void requestAllSyncData() throws IOException {
         signal.sendSyncRequest();
@@ -614,7 +621,7 @@ public class DbusManagerImpl implements Manager {
     }
 
     @Override
-    public void close() throws IOException {
+    public void close() {
         synchronized (this) {
             this.notify();
         }
@@ -665,9 +672,9 @@ public class DbusManagerImpl implements Manager {
         return string == null ? "" : string;
     }
 
-    private <T extends DBusInterface> T getRemoteObject(final DBusPath devicePath, final Class<T> type) {
+    private <T extends DBusInterface> T getRemoteObject(final DBusPath path, final Class<T> type) {
         try {
-            return connection.getRemoteObject(DbusConfig.getBusname(), devicePath.getPath(), type);
+            return connection.getRemoteObject(DbusConfig.getBusname(), path.getPath(), type);
         } catch (DBusException e) {
             throw new AssertionError(e);
         }