X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/1548ce9c795662a0dcd6666415c2ecc0a5a88852..b55d75ef992b8a58a1b87e2880dd0cf3451e1aaa:/src/main/java/org/asamk/signal/dbus/DbusProperties.java diff --git a/src/main/java/org/asamk/signal/dbus/DbusProperties.java b/src/main/java/org/asamk/signal/dbus/DbusProperties.java index 37cc35e3..256b858d 100644 --- a/src/main/java/org/asamk/signal/dbus/DbusProperties.java +++ b/src/main/java/org/asamk/signal/dbus/DbusProperties.java @@ -7,6 +7,7 @@ import org.freedesktop.dbus.types.Variant; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.stream.Collectors; public abstract class DbusProperties implements Properties { @@ -25,7 +26,7 @@ public abstract class DbusProperties implements Properties { return handler.get(); } - private java.util.Optional getHandlerOptional(final String interfaceName) { + private Optional getHandlerOptional(final String interfaceName) { return handlers.stream().filter(h -> h.getInterfaceName().equals(interfaceName)).findFirst(); } @@ -51,6 +52,7 @@ public abstract class DbusProperties implements Properties { } @Override + @SuppressWarnings("unchecked") public Map> GetAll(final String interface_name) { final var handler = getHandlerOptional(interface_name); if (handler.isEmpty()) { @@ -61,6 +63,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) o : new Variant<>(o); + })); } }