X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/106af6a801ad12045c3c98f235d5c9176784748f..fc6a4b78eb797643e6b45ca76bed552b9ecc190f:/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 38d9e12c..ac88e2bc 100644 --- a/lib/src/main/java/org/asamk/signal/manager/Manager.java +++ b/lib/src/main/java/org/asamk/signal/manager/Manager.java @@ -2,6 +2,7 @@ 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.CaptchaRequiredException; import org.asamk.signal.manager.api.Configuration; import org.asamk.signal.manager.api.Device; import org.asamk.signal.manager.api.DeviceLinkUrl; @@ -13,16 +14,20 @@ import org.asamk.signal.manager.api.GroupSendingNotAllowedException; import org.asamk.signal.manager.api.Identity; import org.asamk.signal.manager.api.IdentityVerificationCode; import org.asamk.signal.manager.api.InactiveGroupLinkException; +import org.asamk.signal.manager.api.IncorrectPinException; 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.LastGroupAdminException; import org.asamk.signal.manager.api.Message; import org.asamk.signal.manager.api.MessageEnvelope; +import org.asamk.signal.manager.api.NonNormalizedPhoneNumberException; import org.asamk.signal.manager.api.NotAGroupMemberException; import org.asamk.signal.manager.api.NotPrimaryDeviceException; import org.asamk.signal.manager.api.Pair; import org.asamk.signal.manager.api.PendingAdminApprovalException; +import org.asamk.signal.manager.api.PinLockedException; +import org.asamk.signal.manager.api.RateLimitException; import org.asamk.signal.manager.api.ReceiveConfig; import org.asamk.signal.manager.api.Recipient; import org.asamk.signal.manager.api.RecipientIdentifier; @@ -36,6 +41,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.manager.api.UsernameLinkUrl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.whispersystems.signalservice.api.util.PhoneNumberFormatter; @@ -81,13 +87,13 @@ public interface Manager extends Closeable { * @return A map of numbers to canonicalized number and uuid. If a number is not registered the uuid is null. * @throws IOException if it's unable to get the contacts to check if they're registered */ - Map getUserStatus(Set numbers) throws IOException; + Map getUserStatus(Set numbers) throws IOException, RateLimitException; void updateAccountAttributes(String deviceName) throws IOException; Configuration getConfiguration(); - void updateConfiguration(Configuration configuration) throws IOException, NotPrimaryDeviceException; + void updateConfiguration(Configuration configuration) throws NotPrimaryDeviceException; /** * Update the user's profile. @@ -95,11 +101,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. @@ -107,6 +117,14 @@ public interface Manager extends Closeable { */ void deleteUsername() throws IOException; + void startChangeNumber( + String newNumber, boolean voiceVerification, String captcha + ) throws RateLimitException, IOException, CaptchaRequiredException, NonNormalizedPhoneNumberException, NotPrimaryDeviceException; + + void finishChangeNumber( + String newNumber, String verificationCode, String pin + ) throws IncorrectPinException, PinLockedException, IOException, NotPrimaryDeviceException; + void unregister() throws IOException; void deleteAccount() throws IOException; @@ -117,7 +135,7 @@ public interface Manager extends Closeable { void removeLinkedDevices(int deviceId) throws IOException; - void addDeviceLink(DeviceLinkUrl linkUri) throws IOException, InvalidDeviceLinkException; + void addDeviceLink(DeviceLinkUrl linkUri) throws IOException, InvalidDeviceLinkException, NotPrimaryDeviceException; void setRegistrationLockPin(Optional pin) throws IOException, NotPrimaryDeviceException; @@ -147,11 +165,11 @@ public interface Manager extends Closeable { SendMessageResults sendReadReceipt( RecipientIdentifier.Single sender, List messageIds - ) throws IOException; + ); SendMessageResults sendViewedReceipt( RecipientIdentifier.Single sender, List messageIds - ) throws IOException; + ); SendMessageResults sendMessage( Message message, Set recipients @@ -180,13 +198,15 @@ public interface Manager extends Closeable { SendMessageResults sendEndSessionMessage(Set recipients) throws IOException; + void hideRecipient(RecipientIdentifier.Single recipient); + void deleteRecipient(RecipientIdentifier.Single recipient); void deleteContact(RecipientIdentifier.Single recipient); void setContactName( RecipientIdentifier.Single recipient, String givenName, final String familyName - ) throws NotPrimaryDeviceException, IOException, UnregisteredRecipientException; + ) throws NotPrimaryDeviceException, UnregisteredRecipientException; void setContactsBlocked( Collection recipient, boolean blocked @@ -211,6 +231,8 @@ public interface Manager extends Closeable { */ StickerPackUrl uploadStickerPack(File path) throws IOException, StickerPackInvalidException; + void installStickerPack(StickerPackUrl url) throws IOException; + List getStickerPacks(); void requestAllSyncData() throws IOException; @@ -240,6 +262,8 @@ public interface Manager extends Closeable { Optional timeout, Optional maxMessages, ReceiveMessageHandler handler ) throws IOException, AlreadyReceivingException; + void stopReceiveMessages(); + void setReceiveConfig(ReceiveConfig receiveConfig); boolean isContactBlocked(RecipientIdentifier.Single recipient); @@ -284,7 +308,7 @@ public interface Manager extends Closeable { InputStream retrieveAttachment(final String id) throws IOException; @Override - void close() throws IOException; + void close(); interface ReceiveMessageHandler {