import org.asamk.signal.manager.api.StickerPackUrl;
import org.asamk.signal.manager.api.TypingAction;
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 java.net.URISyntaxException;
import java.time.Duration;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
-import java.util.UUID;
import java.util.concurrent.atomic.AtomicLong;
import java.util.function.Function;
import java.util.function.Supplier;
}
@Override
- public Map<String, Pair<String, UUID>> areUsersRegistered(final Set<String> numbers) throws IOException {
+ public Map<String, UserStatus> getUserStatus(final Set<String> numbers) throws IOException {
final var numbersList = new ArrayList<>(numbers);
final var registered = signal.isRegistered(numbersList);
- final var result = new HashMap<String, Pair<String, UUID>>();
+ final var result = new HashMap<String, UserStatus>();
for (var i = 0; i < numbersList.size(); i++) {
result.put(numbersList.get(i),
- new Pair<>(numbersList.get(i), registered.get(i) ? RecipientAddress.UNKNOWN_UUID : null));
+ new UserStatus(numbersList.get(i),
+ registered.get(i) ? RecipientAddress.UNKNOWN_UUID : null,
+ false));
}
return result;
}
}
@Override
- public void setContactBlocked(
- final RecipientIdentifier.Single recipient, final boolean blocked
+ public void setContactsBlocked(
+ final Collection<RecipientIdentifier.Single> recipients, final boolean blocked
) throws NotMasterDeviceException, IOException {
- signal.setContactBlocked(recipient.getIdentifier(), blocked);
+ for (final var recipient : recipients) {
+ signal.setContactBlocked(recipient.getIdentifier(), blocked);
+ }
}
@Override
- public void setGroupBlocked(
- final GroupId groupId, final boolean blocked
+ public void setGroupsBlocked(
+ final Collection<GroupId> groupIds, final boolean blocked
) throws GroupNotFoundException, IOException {
- setGroupProperty(groupId, "IsBlocked", blocked);
+ for (final var groupId : groupIds) {
+ setGroupProperty(groupId, "IsBlocked", blocked);
+ }
}
private void setGroupProperty(final GroupId groupId, final String propertyName, final boolean blocked) {
? Optional.empty()
: Optional.of(new RecipientAddress(null, syncReceived.getDestination())),
Set.of(),
- new MessageEnvelope.Data(syncReceived.getTimestamp(),
+ Optional.of(new MessageEnvelope.Data(syncReceived.getTimestamp(),
syncReceived.getGroupId().length > 0
? Optional.of(new MessageEnvelope.Data.GroupContext(GroupId.unknownVersion(
syncReceived.getGroupId()), false, 0))
Optional.empty(),
List.of(),
List.of(),
- List.of()))),
+ List.of())))),
Optional.empty(),
List.of(),
List.of(),