X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/7b0744ec758b1ccbe3c9ce5a1e6dea5d7e2313da..19b15e68e4ec652e23f9625662b7c0f96b963029:/lib/src/main/java/org/asamk/signal/manager/Manager.java diff --git a/lib/src/main/java/org/asamk/signal/manager/Manager.java b/lib/src/main/java/org/asamk/signal/manager/Manager.java index 6153000b..4b086994 100644 --- a/lib/src/main/java/org/asamk/signal/manager/Manager.java +++ b/lib/src/main/java/org/asamk/signal/manager/Manager.java @@ -2,9 +2,11 @@ package org.asamk.signal.manager; import org.asamk.signal.manager.api.AlreadyReceivingException; import org.asamk.signal.manager.api.AttachmentInvalidException; +import org.asamk.signal.manager.api.CaptchaRejectedException; import org.asamk.signal.manager.api.CaptchaRequiredException; import org.asamk.signal.manager.api.Configuration; import org.asamk.signal.manager.api.Device; +import org.asamk.signal.manager.api.DeviceLimitExceededException; import org.asamk.signal.manager.api.DeviceLinkUrl; import org.asamk.signal.manager.api.Group; import org.asamk.signal.manager.api.GroupId; @@ -34,6 +36,7 @@ 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.StickerPackId; import org.asamk.signal.manager.api.StickerPackInvalidException; import org.asamk.signal.manager.api.StickerPackUrl; import org.asamk.signal.manager.api.TypingAction; @@ -41,6 +44,9 @@ 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.manager.api.UsernameLinkUrl; +import org.asamk.signal.manager.api.UsernameStatus; +import org.asamk.signal.manager.api.VerificationMethodNotAvailableException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.whispersystems.signalservice.api.util.PhoneNumberFormatter; @@ -88,7 +94,14 @@ public interface Manager extends Closeable { */ Map getUserStatus(Set numbers) throws IOException, RateLimitException; - void updateAccountAttributes(String deviceName) throws IOException; + Map getUsernameStatus(Set usernames); + + void updateAccountAttributes( + String deviceName, + Boolean unrestrictedUnidentifiedSender, + final Boolean discoverableByNumber, + final Boolean numberSharing + ) throws IOException; Configuration getConfiguration(); @@ -100,11 +113,15 @@ public interface Manager extends Closeable { */ void updateProfile(UpdateProfile updateProfile) throws IOException; + String getUsername(); + + UsernameLinkUrl getUsernameLink(); + /** * Set a username for the account. * If the username is null, it will be deleted. */ - String setUsername(String username) throws IOException, InvalidUsernameException; + void setUsername(String username) throws IOException, InvalidUsernameException; /** * Set a username for the account. @@ -114,7 +131,7 @@ public interface Manager extends Closeable { void startChangeNumber( String newNumber, boolean voiceVerification, String captcha - ) throws RateLimitException, IOException, CaptchaRequiredException, NonNormalizedPhoneNumberException, NotPrimaryDeviceException; + ) throws RateLimitException, IOException, CaptchaRequiredException, NonNormalizedPhoneNumberException, NotPrimaryDeviceException, VerificationMethodNotAvailableException; void finishChangeNumber( String newNumber, String verificationCode, String pin @@ -124,13 +141,15 @@ public interface Manager extends Closeable { void deleteAccount() throws IOException; - void submitRateLimitRecaptchaChallenge(String challenge, String captcha) throws IOException; + void submitRateLimitRecaptchaChallenge( + String challenge, String captcha + ) throws IOException, CaptchaRejectedException; List getLinkedDevices() throws IOException; - void removeLinkedDevices(int deviceId) throws IOException; + void removeLinkedDevices(int deviceId) throws IOException, NotPrimaryDeviceException; - void addDeviceLink(DeviceLinkUrl linkUri) throws IOException, InvalidDeviceLinkException, NotPrimaryDeviceException; + void addDeviceLink(DeviceLinkUrl linkUri) throws IOException, InvalidDeviceLinkException, NotPrimaryDeviceException, DeviceLimitExceededException; void setRegistrationLockPin(Optional pin) throws IOException, NotPrimaryDeviceException; @@ -167,7 +186,7 @@ public interface Manager extends Closeable { ); SendMessageResults sendMessage( - Message message, Set recipients + Message message, Set recipients, boolean notifySelf ) throws IOException, AttachmentInvalidException, NotAGroupMemberException, GroupNotFoundException, GroupSendingNotAllowedException, UnregisteredRecipientException, InvalidStickerException; SendMessageResults sendEditMessage( @@ -193,6 +212,10 @@ public interface Manager extends Closeable { SendMessageResults sendEndSessionMessage(Set recipients) throws IOException; + SendMessageResults sendMessageRequestResponse( + MessageEnvelope.Sync.MessageRequestResponse.Type type, Set recipientIdentifiers + ); + void hideRecipient(RecipientIdentifier.Single recipient); void deleteRecipient(RecipientIdentifier.Single recipient); @@ -302,6 +325,14 @@ public interface Manager extends Closeable { InputStream retrieveAttachment(final String id) throws IOException; + InputStream retrieveContactAvatar(final RecipientIdentifier.Single recipient) throws IOException, UnregisteredRecipientException; + + InputStream retrieveProfileAvatar(final RecipientIdentifier.Single recipient) throws IOException, UnregisteredRecipientException; + + InputStream retrieveGroupAvatar(final GroupId groupId) throws IOException; + + InputStream retrieveSticker(final StickerPackId stickerPackId, final int stickerId) throws IOException; + @Override void close();