]> nmode's Git Repositories - signal-cli/commitdiff
Add workaround for #1045
authorAsamK <asamk@gmx.de>
Wed, 19 Oct 2022 15:51:12 +0000 (17:51 +0200)
committerAsamK <asamk@gmx.de>
Wed, 19 Oct 2022 15:51:12 +0000 (17:51 +0200)
lib/src/main/java/org/asamk/signal/manager/helper/IncomingMessageHandler.java

index 69ad65f7bfa74459c189416003c4c49c0a156fe2..80cf76870063f11afac653b5707be39ef161ceeb 100644 (file)
@@ -144,7 +144,14 @@ public final class IncomingMessageHandler {
                 } else {
                     final var senderProfile = context.getProfileHelper().getRecipientProfile(sender);
                     final var selfProfile = context.getProfileHelper().getSelfProfile();
                 } else {
                     final var senderProfile = context.getProfileHelper().getRecipientProfile(sender);
                     final var selfProfile = context.getProfileHelper().getSelfProfile();
-                    final var serviceId = ServiceId.parseOrNull(e.getSender());
+                    var serviceId = ServiceId.parseOrNull(e.getSender());
+                    if (serviceId == null) {
+                        // Workaround for libsignal-client issue #492
+                        serviceId = account.getRecipientAddressResolver()
+                                .resolveRecipientAddress(sender)
+                                .serviceId()
+                                .orElse(null);
+                    }
                     if (serviceId != null) {
                         final var isSelf = sender.equals(account.getSelfRecipientId())
                                 && e.getSenderDevice() == account.getDeviceId();
                     if (serviceId != null) {
                         final var isSelf = sender.equals(account.getSelfRecipientId())
                                 && e.getSenderDevice() == account.getDeviceId();