]> nmode's Git Repositories - signal-cli/commitdiff
Fix dbus properties GetAll method for variants
authorAsamK <asamk@gmx.de>
Thu, 7 Oct 2021 18:52:10 +0000 (20:52 +0200)
committerAsamK <asamk@gmx.de>
Thu, 7 Oct 2021 18:56:29 +0000 (20:56 +0200)
src/main/java/org/asamk/signal/dbus/DbusProperties.java

index 37cc35e340099cf2174bba29648d191e3b6ce2b3..bbe01d6b581dc9e85025c2b222b64d51f7aa666a 100644 (file)
@@ -51,6 +51,7 @@ public abstract class DbusProperties implements Properties {
     }
 
     @Override
+    @SuppressWarnings("unchecked")
     public Map<String, Variant<?>> GetAll(final String interface_name) {
         final var handler = getHandlerOptional(interface_name);
         if (handler.isEmpty()) {
@@ -61,6 +62,9 @@ public abstract class DbusProperties implements Properties {
                 .getProperties()
                 .stream()
                 .filter(p -> p.getGetter() != null)
-                .collect(Collectors.toMap(DbusProperty::getName, p -> new Variant<>(p.getGetter().get())));
+                .collect(Collectors.toMap(DbusProperty::getName, p -> {
+                    final Object o = p.getGetter().get();
+                    return o instanceof Variant ? (Variant<Object>) o : new Variant<>(o);
+                }));
     }
 }