]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java
Use java.util.Optional in Manager interface
[signal-cli] / src / main / java / org / asamk / signal / dbus / DbusSignalImpl.java
index 69e36623562f4fd76d6f712d71035704154489d0..25c80ffbfb926ae2e907d49691293e854b6eee80 100644 (file)
@@ -31,7 +31,6 @@ import org.freedesktop.dbus.exceptions.DBusExecutionException;
 import org.freedesktop.dbus.types.Variant;
 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.SendMessageResult;
 import org.whispersystems.signalservice.api.push.exceptions.UnregisteredUserException;
@@ -50,6 +49,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.Set;
 import java.util.UUID;
 import java.util.stream.Collectors;
@@ -158,7 +158,7 @@ public class DbusSignalImpl implements Signal {
         } catch (AttachmentInvalidException e) {
             throw new Error.AttachmentInvalid(e.getMessage());
         } catch (IOException e) {
-            throw new Error.Failure(e.getMessage());
+            throw new Error.Failure(e);
         } catch (GroupNotFoundException | NotAGroupMemberException | GroupSendingNotAllowedException e) {
             throw new Error.GroupNotFound(e.getMessage());
         }
@@ -278,6 +278,19 @@ public class DbusSignalImpl implements Signal {
         }
     }
 
+    @Override
+    public void sendViewedReceipt(
+            final String recipient, final List<Long> messageIds
+    ) throws Error.Failure, Error.UntrustedIdentity {
+        try {
+            m.sendViewedReceipt(getSingleRecipientIdentifier(recipient, m.getSelfNumber()), messageIds);
+        } catch (IOException e) {
+            throw new Error.Failure(e.getMessage());
+        } catch (UntrustedIdentityException e) {
+            throw new Error.UntrustedIdentity(e.getMessage());
+        }
+    }
+
     @Override
     public void sendContacts() {
         try {
@@ -548,7 +561,7 @@ public class DbusSignalImpl implements Signal {
             aboutEmoji = nullIfEmpty(aboutEmoji);
             avatarPath = nullIfEmpty(avatarPath);
             Optional<File> avatarFile = removeAvatar
-                    ? Optional.absent()
+                    ? Optional.empty()
                     : avatarPath == null ? null : Optional.of(new File(avatarPath));
             m.setProfile(givenName, familyName, about, aboutEmoji, avatarFile);
         } catch (IOException e) {
@@ -570,7 +583,7 @@ public class DbusSignalImpl implements Signal {
     @Override
     public void removePin() {
         try {
-            m.setRegistrationLockPin(Optional.absent());
+            m.setRegistrationLockPin(Optional.empty());
         } catch (UnauthenticatedResponseException e) {
             throw new Error.Failure("Remove pin failed with unauthenticated response: " + e.getMessage());
         } catch (IOException e) {