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.UserStatus;
import org.asamk.signal.manager.groups.GroupId;
import org.asamk.signal.manager.groups.GroupInviteLinkUrl;
import org.asamk.signal.manager.groups.GroupNotFoundException;
import org.asamk.signal.manager.groups.GroupSendingNotAllowedException;
import org.asamk.signal.manager.groups.LastGroupAdminException;
import org.asamk.signal.manager.groups.NotAGroupMemberException;
-import org.asamk.signal.manager.storage.recipients.Contact;
import org.asamk.signal.manager.storage.recipients.Profile;
-import org.asamk.signal.manager.storage.recipients.RecipientAddress;
+import org.asamk.signal.manager.storage.recipients.Recipient;
import org.whispersystems.signalservice.api.util.PhoneNumberFormatter;
import java.io.Closeable;
import java.io.IOException;
import java.net.URI;
import java.time.Duration;
+import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
-import java.util.UUID;
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<String, Pair<String, UUID>> areUsersRegistered(Set<String> numbers) throws IOException;
+ Map<String, UserStatus> getUserStatus(Set<String> numbers) throws IOException;
void updateAccountAttributes(String deviceName) throws IOException;
RecipientIdentifier.Single recipient, String name
) throws NotMasterDeviceException, IOException, UnregisteredRecipientException;
- void setContactBlocked(
- RecipientIdentifier.Single recipient, boolean blocked
+ void setContactsBlocked(
+ Collection<RecipientIdentifier.Single> recipient, boolean blocked
) throws NotMasterDeviceException, IOException, UnregisteredRecipientException;
- void setGroupBlocked(
- GroupId groupId, boolean blocked
+ void setGroupsBlocked(
+ Collection<GroupId> groupId, boolean blocked
) throws GroupNotFoundException, IOException, NotMasterDeviceException;
/**
void sendContacts() throws IOException;
- List<Pair<RecipientAddress, Contact>> getContacts();
+ List<Recipient> getRecipients(
+ boolean onlyContacts,
+ Optional<Boolean> blocked,
+ Collection<RecipientIdentifier.Single> address,
+ Optional<String> name
+ );
String getContactOrProfileName(RecipientIdentifier.Single recipient);
*/
boolean trustIdentityAllKeys(RecipientIdentifier.Single recipient) throws UnregisteredRecipientException;
+ void addAddressChangedListener(Runnable listener);
+
void addClosedListener(Runnable listener);
@Override