]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java
Prevent unnecessary compile warnings
[signal-cli] / src / main / java / org / asamk / signal / dbus / DbusSignalImpl.java
index a4b1a48bb97ebf0ed719ac29ef75c583f34ab615..a5f28c678a92e9b04e06985dba370435f9ce5c57 100644 (file)
@@ -21,6 +21,7 @@ import org.asamk.signal.manager.api.Message;
 import org.asamk.signal.manager.api.NotAGroupMemberException;
 import org.asamk.signal.manager.api.NotPrimaryDeviceException;
 import org.asamk.signal.manager.api.PendingAdminApprovalException;
+import org.asamk.signal.manager.api.RateLimitException;
 import org.asamk.signal.manager.api.RecipientAddress;
 import org.asamk.signal.manager.api.RecipientIdentifier;
 import org.asamk.signal.manager.api.SendMessageResult;
@@ -31,6 +32,7 @@ import org.asamk.signal.manager.api.UnregisteredRecipientException;
 import org.asamk.signal.manager.api.UpdateGroup;
 import org.asamk.signal.manager.api.UpdateProfile;
 import org.asamk.signal.manager.api.UserStatus;
+import org.asamk.signal.util.DateUtils;
 import org.asamk.signal.util.SendMessageResultUtils;
 import org.freedesktop.dbus.DBusPath;
 import org.freedesktop.dbus.connections.impl.DBusConnection;
@@ -349,26 +351,16 @@ public class DbusSignalImpl implements Signal {
     public void sendReadReceipt(
             final String recipient, final List<Long> messageIds
     ) throws Error.Failure, Error.UntrustedIdentity {
-        try {
-            final var results = m.sendReadReceipt(getSingleRecipientIdentifier(recipient, m.getSelfNumber()),
-                    messageIds);
-            checkSendMessageResults(results);
-        } catch (IOException e) {
-            throw new Error.Failure(e.getMessage());
-        }
+        final var results = m.sendReadReceipt(getSingleRecipientIdentifier(recipient, m.getSelfNumber()), messageIds);
+        checkSendMessageResults(results);
     }
 
     @Override
     public void sendViewedReceipt(
             final String recipient, final List<Long> messageIds
     ) throws Error.Failure, Error.UntrustedIdentity {
-        try {
-            final var results = m.sendViewedReceipt(getSingleRecipientIdentifier(recipient, m.getSelfNumber()),
-                    messageIds);
-            checkSendMessageResults(results);
-        } catch (IOException e) {
-            throw new Error.Failure(e.getMessage());
-        }
+        final var results = m.sendViewedReceipt(getSingleRecipientIdentifier(recipient, m.getSelfNumber()), messageIds);
+        checkSendMessageResults(results);
     }
 
     @Override
@@ -530,8 +522,6 @@ public class DbusSignalImpl implements Signal {
             m.setContactName(getSingleRecipientIdentifier(number, m.getSelfNumber()), name, "");
         } catch (NotPrimaryDeviceException e) {
             throw new Error.Failure("This command doesn't work on linked devices.");
-        } catch (IOException e) {
-            throw new Error.Failure("Contact is not registered.");
         } catch (UnregisteredRecipientException e) {
             throw new Error.UntrustedIdentity(e.getSender().getIdentifier() + " is not registered.");
         }
@@ -562,6 +552,7 @@ public class DbusSignalImpl implements Signal {
     }
 
     @Override
+    @Deprecated
     public void setGroupBlocked(final byte[] groupId, final boolean blocked) {
         try {
             m.setGroupsBlocked(List.of(getGroupId(groupId)), blocked);
@@ -575,6 +566,7 @@ public class DbusSignalImpl implements Signal {
     }
 
     @Override
+    @Deprecated
     public List<byte[]> getGroupIds() {
         var groups = m.getGroups();
         return groups.stream().map(g -> g.groupId().serialize()).toList();
@@ -597,6 +589,7 @@ public class DbusSignalImpl implements Signal {
     }
 
     @Override
+    @Deprecated
     public String getGroupName(final byte[] groupId) {
         var group = m.getGroup(getGroupId(groupId));
         if (group == null || group.title() == null) {
@@ -607,6 +600,7 @@ public class DbusSignalImpl implements Signal {
     }
 
     @Override
+    @Deprecated
     public List<String> getGroupMembers(final byte[] groupId) {
         var group = m.getGroup(getGroupId(groupId));
         if (group == null) {
@@ -621,11 +615,16 @@ public class DbusSignalImpl implements Signal {
     public byte[] createGroup(
             final String name, final List<String> members, final String avatar
     ) throws Error.AttachmentInvalid, Error.Failure, Error.InvalidNumber {
-        return updateGroup(new byte[0], name, members, avatar);
+        return updateGroupInternal(new byte[0], name, members, avatar);
     }
 
     @Override
+    @Deprecated
     public byte[] updateGroup(byte[] groupId, String name, List<String> members, String avatar) {
+        return updateGroupInternal(groupId, name, members, avatar);
+    }
+
+    public byte[] updateGroupInternal(byte[] groupId, String name, List<String> members, String avatar) {
         try {
             groupId = nullIfEmpty(groupId);
             name = nullIfEmpty(name);
@@ -660,6 +659,7 @@ public class DbusSignalImpl implements Signal {
     }
 
     @Override
+    @Deprecated
     public boolean isRegistered() {
         return true;
     }
@@ -681,6 +681,10 @@ public class DbusSignalImpl implements Signal {
             registered = m.getUserStatus(new HashSet<>(numbers));
         } catch (IOException e) {
             throw new Error.Failure(e.getMessage());
+        } catch (RateLimitException e) {
+            throw new Error.Failure(e.getMessage()
+                    + ", retry at "
+                    + DateUtils.formatTimestamp(e.getNextAttemptTimestamp()));
         }
 
         return numbers.stream().map(number -> registered.get(number).uuid() != null).toList();
@@ -776,6 +780,7 @@ public class DbusSignalImpl implements Signal {
     }
 
     @Override
+    @Deprecated
     public void quitGroup(final byte[] groupId) {
         var group = getGroupId(groupId);
         try {
@@ -815,6 +820,7 @@ public class DbusSignalImpl implements Signal {
     }
 
     @Override
+    @Deprecated
     public boolean isGroupBlocked(final byte[] groupId) {
         var group = m.getGroup(getGroupId(groupId));
         if (group == null) {
@@ -825,6 +831,7 @@ public class DbusSignalImpl implements Signal {
     }
 
     @Override
+    @Deprecated
     public boolean isMember(final byte[] groupId) {
         var group = m.getGroup(getGroupId(groupId));
         if (group == null) {
@@ -893,7 +900,7 @@ public class DbusSignalImpl implements Signal {
         }
 
         var errors = SendMessageResultUtils.getErrorMessagesFromSendMessageResults(results);
-        if (errors.size() == 0 || errors.size() < results.size()) {
+        if (errors.isEmpty() || errors.size() < results.size()) {
             return;
         }
 
@@ -1032,7 +1039,7 @@ public class DbusSignalImpl implements Signal {
             connection.exportObject(object);
             logger.debug("Exported dbus object: " + object.getObjectPath());
         } catch (DBusException e) {
-            e.printStackTrace();
+            logger.warn("Failed to export dbus object (" + object.getObjectPath() + "): " + e.getMessage());
         }
     }
 
@@ -1100,7 +1107,8 @@ public class DbusSignalImpl implements Signal {
 
         @Override
         public String getObjectPath() {
-            return getIdentityObjectPath(objectPath, identity.recipient().getLegacyIdentifier());
+            return getIdentityObjectPath(objectPath,
+                    identity.recipient().getLegacyIdentifier() + "_" + identity.recipient().getIdentifier());
         }
 
         @Override
@@ -1231,8 +1239,6 @@ public class DbusSignalImpl implements Signal {
                         Optional.ofNullable(unidentifiedDeliveryIndicators),
                         Optional.ofNullable(typingIndicators),
                         Optional.ofNullable(linkPreviews)));
-            } catch (IOException e) {
-                throw new Error.Failure("UpdateAccount error: " + e.getMessage());
             } catch (NotPrimaryDeviceException e) {
                 throw new Error.Failure("This command doesn't work on linked devices.");
             }