From: AsamK Date: Tue, 14 Jan 2025 20:33:12 +0000 (+0100) Subject: Use existing connection to read configuration during storage sync X-Git-Tag: v0.13.12~14 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/e4af0be0ad9627e763719f085bd1c2b8a9681d2d?ds=inline Use existing connection to read configuration during storage sync --- 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 5f52585e..bb53479b 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 @@ -353,7 +353,8 @@ public class StorageHelper { final var storageId = newContactStorageIds.get(recipientId); if (storageId.getType() == ManifestRecord.Identifier.Type.ACCOUNT.getValue()) { final var recipient = account.getRecipientStore().getRecipient(connection, recipientId); - final var accountRecord = StorageSyncModels.localToRemoteRecord(account.getConfigurationStore(), + final var accountRecord = StorageSyncModels.localToRemoteRecord(connection, + account.getConfigurationStore(), recipient, account.getUsernameLink()); newStorageRecords.add(new SignalStorageRecord(storageId, @@ -551,7 +552,8 @@ public class StorageHelper { final var selfRecipient = account.getRecipientStore() .getRecipient(connection, account.getSelfRecipientId()); - final var record = StorageSyncModels.localToRemoteRecord(account.getConfigurationStore(), + final var record = StorageSyncModels.localToRemoteRecord(connection, + account.getConfigurationStore(), selfRecipient, account.getUsernameLink()); yield new SignalStorageRecord(storageId, new StorageRecord.Builder().account(record).build()); diff --git a/lib/src/main/java/org/asamk/signal/manager/storage/configuration/ConfigurationStore.java b/lib/src/main/java/org/asamk/signal/manager/storage/configuration/ConfigurationStore.java index ef4a4545..88f05725 100644 --- a/lib/src/main/java/org/asamk/signal/manager/storage/configuration/ConfigurationStore.java +++ b/lib/src/main/java/org/asamk/signal/manager/storage/configuration/ConfigurationStore.java @@ -36,6 +36,10 @@ public class ConfigurationStore { return keyValueStore.getEntry(readReceipts); } + public Boolean getReadReceipts(final Connection connection) throws SQLException { + return keyValueStore.getEntry(connection, readReceipts); + } + public void setReadReceipts(final boolean value) { if (keyValueStore.storeEntry(readReceipts, value)) { recipientStore.rotateSelfStorageId(); @@ -52,6 +56,10 @@ public class ConfigurationStore { return keyValueStore.getEntry(unidentifiedDeliveryIndicators); } + public Boolean getUnidentifiedDeliveryIndicators(final Connection connection) throws SQLException { + return keyValueStore.getEntry(connection, unidentifiedDeliveryIndicators); + } + public void setUnidentifiedDeliveryIndicators(final boolean value) { if (keyValueStore.storeEntry(unidentifiedDeliveryIndicators, value)) { recipientStore.rotateSelfStorageId(); @@ -71,6 +79,10 @@ public class ConfigurationStore { return keyValueStore.getEntry(typingIndicators); } + public Boolean getTypingIndicators(final Connection connection) throws SQLException { + return keyValueStore.getEntry(connection, typingIndicators); + } + public void setTypingIndicators(final boolean value) { if (keyValueStore.storeEntry(typingIndicators, value)) { recipientStore.rotateSelfStorageId(); @@ -87,6 +99,10 @@ public class ConfigurationStore { return keyValueStore.getEntry(linkPreviews); } + public Boolean getLinkPreviews(final Connection connection) throws SQLException { + return keyValueStore.getEntry(connection, linkPreviews); + } + public void setLinkPreviews(final boolean value) { if (keyValueStore.storeEntry(linkPreviews, value)) { recipientStore.rotateSelfStorageId(); @@ -103,6 +119,10 @@ public class ConfigurationStore { return keyValueStore.getEntry(phoneNumberUnlisted); } + public Boolean getPhoneNumberUnlisted(final Connection connection) throws SQLException { + return keyValueStore.getEntry(connection, phoneNumberUnlisted); + } + public void setPhoneNumberUnlisted(final boolean value) { if (keyValueStore.storeEntry(phoneNumberUnlisted, value)) { recipientStore.rotateSelfStorageId(); @@ -119,6 +139,10 @@ public class ConfigurationStore { return keyValueStore.getEntry(phoneNumberSharingMode); } + public PhoneNumberSharingMode getPhoneNumberSharingMode(final Connection connection) throws SQLException { + return keyValueStore.getEntry(connection, phoneNumberSharingMode); + } + public void setPhoneNumberSharingMode(final PhoneNumberSharingMode value) { if (keyValueStore.storeEntry(phoneNumberSharingMode, value)) { recipientStore.rotateSelfStorageId(); @@ -138,6 +162,10 @@ public class ConfigurationStore { return keyValueStore.getEntry(usernameLinkColor); } + public String getUsernameLinkColor(final Connection connection) throws SQLException { + return keyValueStore.getEntry(connection, usernameLinkColor); + } + public void setUsernameLinkColor(final String color) { if (keyValueStore.storeEntry(usernameLinkColor, color)) { recipientStore.rotateSelfStorageId(); diff --git a/lib/src/main/java/org/asamk/signal/manager/storage/keyValue/KeyValueStore.java b/lib/src/main/java/org/asamk/signal/manager/storage/keyValue/KeyValueStore.java index ac43c9c5..17135d10 100644 --- a/lib/src/main/java/org/asamk/signal/manager/storage/keyValue/KeyValueStore.java +++ b/lib/src/main/java/org/asamk/signal/manager/storage/keyValue/KeyValueStore.java @@ -52,7 +52,7 @@ public class KeyValueStore { } } - private T getEntry(final Connection connection, final KeyValueEntry key) throws SQLException { + public T getEntry(final Connection connection, final KeyValueEntry key) throws SQLException { final var sql = ( """ SELECT key, value diff --git a/lib/src/main/java/org/asamk/signal/manager/syncStorage/AccountRecordProcessor.java b/lib/src/main/java/org/asamk/signal/manager/syncStorage/AccountRecordProcessor.java index 5b1efbd6..656297bf 100644 --- a/lib/src/main/java/org/asamk/signal/manager/syncStorage/AccountRecordProcessor.java +++ b/lib/src/main/java/org/asamk/signal/manager/syncStorage/AccountRecordProcessor.java @@ -53,7 +53,8 @@ public class AccountRecordProcessor extends DefaultStorageRecordProcessor