From ca1a852b44f9e7413ab2b8b41e65d54074ad5924 Mon Sep 17 00:00:00 2001 From: AsamK Date: Mon, 22 Jan 2024 18:40:39 +0100 Subject: [PATCH] Handle mentions when receiving from dbus --- graalvm-config-dir/reflect-config.json | 8 +++++--- .../asamk/signal/dbus/DbusManagerImpl.java | 19 ++++++++++++++++--- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/graalvm-config-dir/reflect-config.json b/graalvm-config-dir/reflect-config.json index f907f84e..157b94d1 100644 --- a/graalvm-config-dir/reflect-config.json +++ b/graalvm-config-dir/reflect-config.json @@ -568,7 +568,7 @@ "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", @@ -663,7 +663,8 @@ { "name":"org.asamk.SignalControl", "allDeclaredMethods":true, - "allDeclaredClasses":true + "allDeclaredClasses":true, + "methods":[{"name":"listAccounts","parameterTypes":[] }] }, { "name":"org.asamk.SignalControl$Error$Failure", @@ -1815,7 +1816,8 @@ { "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", diff --git a/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java b/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java index e6a18307..9ba19348 100644 --- a/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java +++ b/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java @@ -849,7 +849,7 @@ public class DbusManagerImpl implements Manager { Optional.empty(), Optional.empty(), List.of(), - List.of(), + getMentions(extras), List.of(), List.of())), Optional.empty(), @@ -893,7 +893,7 @@ public class DbusManagerImpl implements Manager { Optional.empty(), Optional.empty(), List.of(), - List.of(), + getMentions(extras), List.of(), List.of()))), Optional.empty(), @@ -970,7 +970,7 @@ public class DbusManagerImpl implements Manager { Optional.empty(), Optional.empty(), List.of(), - List.of(), + getMentions(extras), List.of(), List.of())), Optional.empty(), @@ -1039,6 +1039,19 @@ public class DbusManagerImpl implements Manager { }).toList(); } + private List getMentions(final Map> extras) { + if (!extras.containsKey("mentions")) { + return List.of(); + } + + final List>> 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(); -- 2.50.1