]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java
Handle UnauthenticatedResponseException internally
[signal-cli] / src / main / java / org / asamk / signal / dbus / DbusManagerImpl.java
index fcbadd38de3cd43fb1317a6c6fc94e6fa704b645..df0bb86925e2fe63914f5207fb89ea9a1b786ad9 100644 (file)
@@ -10,7 +10,10 @@ import org.asamk.signal.manager.UntrustedIdentityException;
 import org.asamk.signal.manager.api.Device;
 import org.asamk.signal.manager.api.Group;
 import org.asamk.signal.manager.api.Identity;
+import org.asamk.signal.manager.api.InactiveGroupLinkException;
+import org.asamk.signal.manager.api.InvalidDeviceLinkException;
 import org.asamk.signal.manager.api.Message;
+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;
@@ -30,15 +33,10 @@ import org.freedesktop.dbus.DBusPath;
 import org.freedesktop.dbus.connections.impl.DBusConnection;
 import org.freedesktop.dbus.exceptions.DBusException;
 import org.freedesktop.dbus.interfaces.DBusInterface;
-import org.whispersystems.libsignal.InvalidKeyException;
-import org.whispersystems.libsignal.util.Pair;
-import org.whispersystems.libsignal.util.guava.Optional;
-import org.whispersystems.signalservice.api.groupsv2.GroupLinkNotActiveException;
 import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentRemoteId;
 import org.whispersystems.signalservice.api.push.SignalServiceAddress;
 import org.whispersystems.signalservice.api.push.exceptions.UnregisteredUserException;
 import org.whispersystems.signalservice.api.util.UuidUtil;
-import org.whispersystems.signalservice.internal.contacts.crypto.UnauthenticatedResponseException;
 
 import java.io.File;
 import java.io.IOException;
@@ -48,6 +46,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.UUID;
 import java.util.concurrent.TimeUnit;
@@ -122,7 +121,7 @@ public class DbusManagerImpl implements Manager {
                 emptyIfNull(familyName),
                 emptyIfNull(about),
                 emptyIfNull(aboutEmoji),
-                avatar == null ? "" : avatar.transform(File::getPath).or(""),
+                avatar == null ? "" : avatar.map(File::getPath).orElse(""),
                 avatar != null && !avatar.isPresent());
     }
 
@@ -162,12 +161,12 @@ public class DbusManagerImpl implements Manager {
     }
 
     @Override
-    public void addDeviceLink(final URI linkUri) throws IOException, InvalidKeyException {
+    public void addDeviceLink(final URI linkUri) throws IOException, InvalidDeviceLinkException {
         signal.addDevice(linkUri.toString());
     }
 
     @Override
-    public void setRegistrationLockPin(final Optional<String> pin) throws IOException, UnauthenticatedResponseException {
+    public void setRegistrationLockPin(final Optional<String> pin) throws IOException {
         if (pin.isPresent()) {
             signal.setPin(pin.get());
         } else {
@@ -274,22 +273,16 @@ public class DbusManagerImpl implements Manager {
         }
         if (updateGroup.getGroupLinkState() != null) {
             switch (updateGroup.getGroupLinkState()) {
-                case DISABLED:
-                    group.disableLink();
-                    break;
-                case ENABLED:
-                    group.enableLink(false);
-                    break;
-                case ENABLED_WITH_APPROVAL:
-                    group.enableLink(true);
-                    break;
+                case DISABLED -> group.disableLink();
+                case ENABLED -> group.enableLink(false);
+                case ENABLED_WITH_APPROVAL -> group.enableLink(true);
             }
         }
         return new SendGroupMessageResults(0, List.of());
     }
 
     @Override
-    public Pair<GroupId, SendGroupMessageResults> joinGroup(final GroupInviteLinkUrl inviteLinkUrl) throws IOException, GroupLinkNotActiveException {
+    public Pair<GroupId, SendGroupMessageResults> joinGroup(final GroupInviteLinkUrl inviteLinkUrl) throws IOException, InactiveGroupLinkException {
         final var newGroupId = signal.joinGroup(inviteLinkUrl.getUrl());
         return new Pair<>(GroupId.unknownVersion(newGroupId), new SendGroupMessageResults(0, List.of()));
     }
@@ -327,9 +320,9 @@ public class DbusManagerImpl implements Manager {
             final Message message, final Set<RecipientIdentifier> recipients
     ) throws IOException, AttachmentInvalidException, NotAGroupMemberException, GroupNotFoundException, GroupSendingNotAllowedException {
         return handleMessage(recipients,
-                numbers -> signal.sendMessage(message.getMessageText(), message.getAttachments(), numbers),
-                () -> signal.sendNoteToSelfMessage(message.getMessageText(), message.getAttachments()),
-                groupId -> signal.sendGroupMessage(message.getMessageText(), message.getAttachments(), groupId));
+                numbers -> signal.sendMessage(message.messageText(), message.attachments(), numbers),
+                () -> signal.sendNoteToSelfMessage(message.messageText(), message.attachments()),
+                groupId -> signal.sendGroupMessage(message.messageText(), message.attachments(), groupId));
     }
 
     @Override