]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/Manager.java
Implement editing of previous messages
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / Manager.java
index 01d88e46c43b669c13395ad77f30cdb01a58c0ca..b6602f576768ce94ec9d86991a1ea35a0f1530cf 100644 (file)
@@ -9,6 +9,7 @@ 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.InvalidStickerException;
+import org.asamk.signal.manager.api.InvalidUsernameException;
 import org.asamk.signal.manager.api.Message;
 import org.asamk.signal.manager.api.MessageEnvelope;
 import org.asamk.signal.manager.api.NotPrimaryDeviceException;
@@ -39,6 +40,7 @@ import org.whispersystems.signalservice.api.util.PhoneNumberFormatter;
 import java.io.Closeable;
 import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
 import java.net.URI;
 import java.time.Duration;
 import java.util.Collection;
@@ -76,6 +78,18 @@ public interface Manager extends Closeable {
      */
     void updateProfile(UpdateProfile updateProfile) throws IOException;
 
+    /**
+     * Set a username for the account.
+     * If the username is null, it will be deleted.
+     */
+    String setUsername(String username) throws IOException, InvalidUsernameException;
+
+    /**
+     * Set a username for the account.
+     * If the username is null, it will be deleted.
+     */
+    void deleteUsername() throws IOException;
+
     void unregister() throws IOException;
 
     void deleteAccount() throws IOException;
@@ -101,7 +115,7 @@ public interface Manager extends Closeable {
     void deleteGroup(GroupId groupId) throws IOException;
 
     Pair<GroupId, SendGroupMessageResults> createGroup(
-            String name, Set<RecipientIdentifier.Single> members, File avatarFile
+            String name, Set<RecipientIdentifier.Single> members, String avatarFile
     ) throws IOException, AttachmentInvalidException, UnregisteredRecipientException;
 
     SendGroupMessageResults updateGroup(
@@ -128,6 +142,10 @@ public interface Manager extends Closeable {
             Message message, Set<RecipientIdentifier> recipients
     ) throws IOException, AttachmentInvalidException, NotAGroupMemberException, GroupNotFoundException, GroupSendingNotAllowedException, UnregisteredRecipientException, InvalidStickerException;
 
+    SendMessageResults sendEditMessage(
+            Message message, Set<RecipientIdentifier> recipients, long editTargetTimestamp
+    ) throws IOException, AttachmentInvalidException, NotAGroupMemberException, GroupNotFoundException, GroupSendingNotAllowedException, UnregisteredRecipientException, InvalidStickerException;
+
     SendMessageResults sendRemoteDeleteMessage(
             long targetSentTimestamp, Set<RecipientIdentifier> recipients
     ) throws IOException, NotAGroupMemberException, GroupNotFoundException, GroupSendingNotAllowedException;
@@ -271,6 +289,8 @@ public interface Manager extends Closeable {
 
     void addClosedListener(Runnable listener);
 
+    InputStream retrieveAttachment(final String id) throws IOException;
+
     @Override
     void close() throws IOException;