From c05b47e4d0e95971969a4f31c38cc65d8f23aa46 Mon Sep 17 00:00:00 2001 From: AsamK Date: Wed, 25 Dec 2024 17:19:33 +0100 Subject: [PATCH] Delete storage id of unregistered recipients after remote update --- .../signal/manager/helper/StorageHelper.java | 23 ++++++++++--------- .../storage/recipients/RecipientStore.java | 2 +- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/lib/src/main/java/org/asamk/signal/manager/helper/StorageHelper.java b/lib/src/main/java/org/asamk/signal/manager/helper/StorageHelper.java index 740c0b5e..5f52585e 100644 --- a/lib/src/main/java/org/asamk/signal/manager/helper/StorageHelper.java +++ b/lib/src/main/java/org/asamk/signal/manager/helper/StorageHelper.java @@ -198,17 +198,6 @@ public class StorageHelper { logger.debug("Pre-Merge ID Difference :: {}", idDifference); - if (!idDifference.localOnlyIds().isEmpty()) { - final var updated = account.getRecipientStore() - .removeStorageIdsFromLocalOnlyUnregisteredRecipients(connection, idDifference.localOnlyIds()); - - if (updated > 0) { - logger.warn( - "Found {} records that were deleted remotely but only marked unregistered locally. Removed those from local store.", - updated); - } - } - if (!idDifference.isEmpty()) { final var remoteOnlyRecords = getSignalStorageRecords(storageKey, remoteManifest, @@ -227,6 +216,18 @@ public class StorageHelper { .filter(id -> !KNOWN_TYPES.contains(id.getType())) .toList(); + if (!idDifference.localOnlyIds().isEmpty()) { + final var updated = account.getRecipientStore() + .removeStorageIdsFromLocalOnlyUnregisteredRecipients(connection, + idDifference.localOnlyIds()); + + if (updated > 0) { + logger.warn( + "Found {} records that were deleted remotely but only marked unregistered locally. Removed those from local store.", + updated); + } + } + logger.debug("Storage ids with unknown type: {} inserts, {} deletes", unknownInserts.size(), unknownDeletes.size()); 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 aa245369..8d006416 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 @@ -934,7 +934,7 @@ public class RecipientStore implements RecipientIdCreator, RecipientResolver, Re } public void markUndiscoverablePossiblyUnregistered(final Set numbers) { - logger.debug("Marking {} numbers as unregistered", numbers.size()); + logger.debug("Marking {} numbers as undiscoverable", numbers.size()); try (final var connection = database.getConnection()) { connection.setAutoCommit(false); for (final var number : numbers) { -- 2.50.1