]> nmode's Git Repositories - signal-cli/commitdiff
Handle mentions when receiving from dbus
authorAsamK <asamk@gmx.de>
Mon, 22 Jan 2024 17:40:39 +0000 (18:40 +0100)
committerAsamK <asamk@gmx.de>
Mon, 22 Jan 2024 17:40:39 +0000 (18:40 +0100)
graalvm-config-dir/reflect-config.json
src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java

index f907f84e1b27fc6cae4d1e0a855efe59c1010a87..157b94d17d3da443d780373bf4e080f07f4aec8b 100644 (file)
   "name":"org.asamk.Signal",
   "allDeclaredMethods":true,
   "allDeclaredClasses":true,
   "name":"org.asamk.Signal",
   "allDeclaredMethods":true,
   "allDeclaredClasses":true,
-  "methods":[{"name":"getContactName","parameterTypes":["java.lang.String"] }, {"name":"getSelfNumber","parameterTypes":[] }, {"name":"sendGroupMessageReaction","parameterTypes":["java.lang.String","boolean","java.lang.String","long","byte[]"] }, {"name":"sendMessage","parameterTypes":["java.lang.String","java.util.List","java.lang.String"] }, {"name":"sendMessageReaction","parameterTypes":["java.lang.String","boolean","java.lang.String","long","java.util.List"] }, {"name":"subscribeReceive","parameterTypes":[] }, {"name":"unsubscribeReceive","parameterTypes":[] }]
+  "methods":[{"name":"getContactName","parameterTypes":["java.lang.String"] }, {"name":"getGroup","parameterTypes":["byte[]"] }, {"name":"getSelfNumber","parameterTypes":[] }, {"name":"sendGroupMessageReaction","parameterTypes":["java.lang.String","boolean","java.lang.String","long","byte[]"] }, {"name":"sendMessage","parameterTypes":["java.lang.String","java.util.List","java.lang.String"] }, {"name":"sendMessageReaction","parameterTypes":["java.lang.String","boolean","java.lang.String","long","java.util.List"] }, {"name":"subscribeReceive","parameterTypes":[] }, {"name":"unsubscribeReceive","parameterTypes":[] }]
 },
 {
   "name":"org.asamk.Signal$Configuration",
 },
 {
   "name":"org.asamk.Signal$Configuration",
 {
   "name":"org.asamk.SignalControl",
   "allDeclaredMethods":true,
 {
   "name":"org.asamk.SignalControl",
   "allDeclaredMethods":true,
-  "allDeclaredClasses":true
+  "allDeclaredClasses":true,
+  "methods":[{"name":"listAccounts","parameterTypes":[] }]
 },
 {
   "name":"org.asamk.SignalControl$Error$Failure",
 },
 {
   "name":"org.asamk.SignalControl$Error$Failure",
 {
   "name":"org.freedesktop.dbus.interfaces.Properties",
   "allDeclaredMethods":true,
 {
   "name":"org.freedesktop.dbus.interfaces.Properties",
   "allDeclaredMethods":true,
-  "allDeclaredClasses":true
+  "allDeclaredClasses":true,
+  "methods":[{"name":"GetAll","parameterTypes":["java.lang.String"] }]
 },
 {
   "name":"org.freedesktop.dbus.interfaces.Properties$PropertiesChanged",
 },
 {
   "name":"org.freedesktop.dbus.interfaces.Properties$PropertiesChanged",
index e6a18307f39c4d67d30a6d00a8d270f3dbec4794..9ba193489cc1713c3b8daf1c7cd8447da76343f5 100644 (file)
@@ -849,7 +849,7 @@ public class DbusManagerImpl implements Manager {
                                 Optional.empty(),
                                 Optional.empty(),
                                 List.of(),
                                 Optional.empty(),
                                 Optional.empty(),
                                 List.of(),
-                                List.of(),
+                                getMentions(extras),
                                 List.of(),
                                 List.of())),
                         Optional.empty(),
                                 List.of(),
                                 List.of())),
                         Optional.empty(),
@@ -893,7 +893,7 @@ public class DbusManagerImpl implements Manager {
                                         Optional.empty(),
                                         Optional.empty(),
                                         List.of(),
                                         Optional.empty(),
                                         Optional.empty(),
                                         List.of(),
-                                        List.of(),
+                                        getMentions(extras),
                                         List.of(),
                                         List.of()))),
                         Optional.empty(),
                                         List.of(),
                                         List.of()))),
                         Optional.empty(),
@@ -970,7 +970,7 @@ public class DbusManagerImpl implements Manager {
                                         Optional.empty(),
                                         Optional.empty(),
                                         List.of(),
                                         Optional.empty(),
                                         Optional.empty(),
                                         List.of(),
-                                        List.of(),
+                                        getMentions(extras),
                                         List.of(),
                                         List.of())),
                                 Optional.empty(),
                                         List.of(),
                                         List.of())),
                                 Optional.empty(),
@@ -1039,6 +1039,19 @@ public class DbusManagerImpl implements Manager {
         }).toList();
     }
 
         }).toList();
     }
 
+    private List<MessageEnvelope.Data.Mention> getMentions(final Map<String, Variant<?>> extras) {
+        if (!extras.containsKey("mentions")) {
+            return List.of();
+        }
+
+        final List<DBusMap<String, Variant<?>>> mentions = getValue(extras, "mentions");
+        return mentions.stream()
+                .map(a -> new MessageEnvelope.Data.Mention(new RecipientAddress(null, getValue(a, "recipient")),
+                        getValue(a, "start"),
+                        getValue(a, "length")))
+                .toList();
+    }
+
     @Override
     public InputStream retrieveAttachment(final String id) throws IOException {
         throw new UnsupportedOperationException();
     @Override
     public InputStream retrieveAttachment(final String id) throws IOException {
         throw new UnsupportedOperationException();