import org.asamk.signal.manager.api.InvalidStickerException;
import org.asamk.signal.manager.api.Message;
import org.asamk.signal.manager.api.MessageEnvelope;
-import org.asamk.signal.manager.api.NotMasterDeviceException;
+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.ReceiveConfig;
+import org.asamk.signal.manager.api.Recipient;
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.TypingAction;
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.groups.GroupId;
import org.asamk.signal.manager.groups.GroupInviteLinkUrl;
import org.asamk.signal.manager.groups.LastGroupAdminException;
import org.asamk.signal.manager.groups.NotAGroupMemberException;
import org.asamk.signal.manager.storage.recipients.Profile;
-import org.asamk.signal.manager.storage.recipients.Recipient;
import org.whispersystems.signalservice.api.util.PhoneNumberFormatter;
import java.io.Closeable;
Configuration getConfiguration();
- void updateConfiguration(Configuration configuration) throws IOException, NotMasterDeviceException;
+ void updateConfiguration(Configuration configuration) throws IOException, NotPrimaryDeviceException;
/**
- * @param givenName if null, the previous givenName will be kept
- * @param familyName if null, the previous familyName will be kept
- * @param about if null, the previous about text will be kept
- * @param aboutEmoji if null, the previous about emoji will be kept
- * @param avatar if avatar is null the image from the local avatar store is used (if present),
+ * Update the user's profile.
+ * If a field is null, the previous value will be kept.
*/
- void setProfile(
- String givenName, String familyName, String about, String aboutEmoji, Optional<File> avatar
- ) throws IOException;
+ void updateProfile(UpdateProfile updateProfile) throws IOException;
void unregister() throws IOException;
void addDeviceLink(URI linkUri) throws IOException, InvalidDeviceLinkException;
- void setRegistrationLockPin(Optional<String> pin) throws IOException, NotMasterDeviceException;
+ void setRegistrationLockPin(Optional<String> pin) throws IOException, NotPrimaryDeviceException;
Profile getRecipientProfile(RecipientIdentifier.Single recipient) throws IOException, UnregisteredRecipientException;
Pair<GroupId, SendGroupMessageResults> joinGroup(
GroupInviteLinkUrl inviteLinkUrl
- ) throws IOException, InactiveGroupLinkException;
+ ) throws IOException, InactiveGroupLinkException, PendingAdminApprovalException;
SendMessageResults sendTypingMessage(
TypingAction action, Set<RecipientIdentifier> recipients
void deleteContact(RecipientIdentifier.Single recipient);
void setContactName(
- RecipientIdentifier.Single recipient, String name
- ) throws NotMasterDeviceException, IOException, UnregisteredRecipientException;
+ RecipientIdentifier.Single recipient, String givenName, final String familyName
+ ) throws NotPrimaryDeviceException, IOException, UnregisteredRecipientException;
void setContactsBlocked(
Collection<RecipientIdentifier.Single> recipient, boolean blocked
- ) throws NotMasterDeviceException, IOException, UnregisteredRecipientException;
+ ) throws NotPrimaryDeviceException, IOException, UnregisteredRecipientException;
void setGroupsBlocked(
Collection<GroupId> groupId, boolean blocked
- ) throws GroupNotFoundException, IOException, NotMasterDeviceException;
+ ) throws GroupNotFoundException, IOException, NotPrimaryDeviceException;
/**
* Change the expiration timer for a contact
*/
void receiveMessages(ReceiveMessageHandler handler) throws IOException;
- void setIgnoreAttachments(boolean ignoreAttachments);
+ void setReceiveConfig(ReceiveConfig receiveConfig);
boolean hasCaughtUpWithOldMessages();