From 3a94d6a00c2e77a2fc895fb3b573a1ccfe53c60f Mon Sep 17 00:00:00 2001 From: John Freed Date: Wed, 22 Sep 2021 19:22:36 +0200 Subject: [PATCH] restructure listIdentities Now returns a complete dictionary (array of dictionary entries) rather then a list of one-entry dictionaries. --- man/signal-cli-dbus.5.adoc | 4 ++-- src/main/java/org/asamk/Signal.java | 2 +- src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java | 9 +++++---- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/man/signal-cli-dbus.5.adoc b/man/signal-cli-dbus.5.adoc index a5016309..361194ea 100755 --- a/man/signal-cli-dbus.5.adoc +++ b/man/signal-cli-dbus.5.adoc @@ -193,13 +193,13 @@ setContactName(number,name<>) -> <>:: listIdentities() -> identities:: * contactNumber : Phone number of contact -* identities : Array of dictionaries with key contactNumber and values listed below +* identities : Array of dictionary entries with key contactNumber and values listed below ** trustLevel : String representation of trust level ** dateAdded : String representation of date added ** fingerprint : String representation of hexadecimal fingerprint ** safetyNumber : String representation of safety number (10 or 11 space-separated six-digit numbers) -Returns an array of dictionaries for all contacts (obtained by listNumbers() and screened to exclude those with no identity information). For each dictionary, the key is the contactNumber and the value is a list of four strings: trustLevel, dateAdded, fingerprint, safetyNumber. +Returns an array of dictionary entries for all contacts (obtained by listNumbers() and screened to exclude those with no identity information). For each dictionary, the key is the contactNumber and the value is a list of four strings: trustLevel, dateAdded, fingerprint, safetyNumber. Exceptions: None diff --git a/src/main/java/org/asamk/Signal.java b/src/main/java/org/asamk/Signal.java index d6575f35..e45e0f92 100644 --- a/src/main/java/org/asamk/Signal.java +++ b/src/main/java/org/asamk/Signal.java @@ -65,7 +65,7 @@ public interface Signal extends DBusInterface { String emoji, boolean remove, String targetAuthor, long targetSentTimestamp, byte[] groupId ) throws Error.GroupNotFound, Error.Failure, Error.InvalidNumber, Error.InvalidGroupId; - List>> listIdentities(); + Map> listIdentities(); Map> listIdentities(String number) throws Error.InvalidNumber; diff --git a/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java b/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java index 0f7d764b..4fab7df4 100644 --- a/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java +++ b/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java @@ -300,16 +300,17 @@ public class DbusSignalImpl implements Signal { } @Override - public List>> listIdentities() { + public Map> listIdentities() { List numbers = listNumbers(); - List>> results = new ArrayList<>(); + Map> result = new HashMap<>(); + if (numbers.isEmpty()) {return result;} for (String number:numbers) { Map> identity = listIdentities(number); if (! identity.isEmpty()) { - results.add(identity); + result.put(number, identity.get(number)); } } - return results; + return result; } @Override