From 760934d5a511afd7f0d6b728e70f5758058f0521 Mon Sep 17 00:00:00 2001 From: AsamK Date: Tue, 16 May 2023 23:09:07 +0200 Subject: [PATCH] Fix deleting old unregistered recipient Fixes #1242 --- .../asamk/signal/manager/helper/RecipientHelper.java | 6 +++++- .../manager/storage/recipients/RecipientStore.java | 10 ++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/src/main/java/org/asamk/signal/manager/helper/RecipientHelper.java b/lib/src/main/java/org/asamk/signal/manager/helper/RecipientHelper.java index 2a3866a5..f614d7ec 100644 --- a/lib/src/main/java/org/asamk/signal/manager/helper/RecipientHelper.java +++ b/lib/src/main/java/org/asamk/signal/manager/helper/RecipientHelper.java @@ -107,7 +107,11 @@ public class RecipientHelper { try { return Optional.of(resolveRecipient(recipient)); } catch (UnregisteredRecipientException e) { - return Optional.empty(); + if (recipient instanceof RecipientIdentifier.Number r) { + return account.getRecipientStore().resolveRecipientByNumberOptional(r.number()); + } else { + return Optional.empty(); + } } } diff --git a/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientStore.java b/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientStore.java index d3b949f8..b8a4b39b 100644 --- a/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientStore.java +++ b/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientStore.java @@ -215,6 +215,16 @@ public class RecipientStore implements RecipientIdCreator, RecipientResolver, Re return byNumber.get().id(); } + public Optional resolveRecipientByNumberOptional(final String number) { + final Optional byNumber; + try (final var connection = database.getConnection()) { + byNumber = findByNumber(connection, number); + } catch (SQLException e) { + throw new RuntimeException("Failed read from recipient store", e); + } + return byNumber.map(RecipientWithAddress::id); + } + public RecipientId resolveRecipientByUsername( final String username, Supplier serviceIdSupplier ) throws UnregisteredRecipientException { -- 2.50.1