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.util.HashSet;
import java.util.List;
import java.util.Map;
+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 List<Pair<RecipientAddress, Contact>> getContacts() {
- throw new UnsupportedOperationException();
+ return signal.listNumbers().stream().map(n -> {
+ final var contactName = signal.getContactName(n);
+ if (contactName.length() == 0) {
+ return null;
+ }
+ return new Pair<>(new RecipientAddress(null, n),
+ new Contact(contactName, null, 0, signal.isContactBlocked(n), false));
+ }).filter(Objects::nonNull).toList();
}
@Override
((List<String>) group.get("Admins").getValue()).stream()
.map(m -> new RecipientAddress(null, m))
.collect(Collectors.toSet()),
+ ((List<String>) group.get("Banned").getValue()).stream()
+ .map(m -> new RecipientAddress(null, m))
+ .collect(Collectors.toSet()),
(boolean) group.get("IsBlocked").getValue(),
(int) group.get("MessageExpirationTimer").getValue(),
GroupPermission.valueOf((String) group.get("PermissionAddMember").getValue()),
throw new UnsupportedOperationException();
}
+ @Override
+ public void addAddressChangedListener(final Runnable listener) {
+ }
+
@Override
public void addClosedListener(final Runnable listener) {
synchronized (closedListeners) {
? 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(),