X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/e456d06cb0d11e08d3d23595087271c8d2172bfa..c1775913b9c54c84b45154aa841a0ba475c7c9fd:/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java diff --git a/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java b/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java index 4573b861..574f68c6 100644 --- a/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java +++ b/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java @@ -41,6 +41,7 @@ import org.asamk.signal.manager.api.StickerPack; import org.asamk.signal.manager.api.StickerPackId; import org.asamk.signal.manager.api.StickerPackInvalidException; import org.asamk.signal.manager.api.StickerPackUrl; +import org.asamk.signal.manager.api.TrustLevel; import org.asamk.signal.manager.api.TypingAction; import org.asamk.signal.manager.api.UnregisteredRecipientException; import org.asamk.signal.manager.api.UpdateGroup; @@ -759,12 +760,26 @@ public class DbusManagerImpl implements Manager { @Override public List getIdentities() { - throw new UnsupportedOperationException(); + final var identities = signal.listIdentities(); + return identities.stream().map(Signal.StructIdentity::getObjectPath).map(this::getIdentity).toList(); } @Override public List getIdentities(final RecipientIdentifier.Single recipient) { - throw new UnsupportedOperationException(); + final var path = signal.getIdentity(recipient.getIdentifier()); + return List.of(getIdentity(path)); + } + + private Identity getIdentity(final DBusPath identityPath) { + final var group = getRemoteObject(identityPath, Signal.Identity.class).GetAll("org.asamk.Signal.Identity"); + final var aci = (String) group.get("Uuid").getValue(); + final var number = (String) group.get("Number").getValue(); + return new Identity(new RecipientAddress(aci, null, number, null), + (byte[]) group.get("Fingerprint").getValue(), + (String) group.get("SafetyNumber").getValue(), + (byte[]) group.get("ScannableSafetyNumber").getValue(), + TrustLevel.valueOf((String) group.get("TrustLevel").getValue()), + (Long) group.get("AddedDate").getValue()); } @Override