From: AsamK Date: Tue, 14 Jan 2025 16:31:15 +0000 (+0100) Subject: Update dependencies X-Git-Tag: v0.13.12~20 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/d9826332150548c077293b161cb55c1fe7e1cb93 Update dependencies --- diff --git a/graalvm-config-dir/reflect-config.json b/graalvm-config-dir/reflect-config.json index 7a8fe2a1..30ace9e3 100644 --- a/graalvm-config-dir/reflect-config.json +++ b/graalvm-config-dir/reflect-config.json @@ -2946,6 +2946,9 @@ { "name":"org.whispersystems.signalservice.internal.storage.protos.AccountRecord$Companion" }, +{ + "name":"org.whispersystems.signalservice.internal.storage.protos.AccountRecord$IAPSubscriberData" +}, { "name":"org.whispersystems.signalservice.internal.storage.protos.AccountRecord$PhoneNumberSharingMode" }, diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 784a2a43..9a5d4fee 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -8,10 +8,10 @@ argparse4j = "net.sourceforge.argparse4j:argparse4j:0.9.0" dbusjava = "com.github.hypfvieh:dbus-java-transport-native-unixsocket:5.0.0" slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" } slf4j-jul = { module = "org.slf4j:jul-to-slf4j", version.ref = "slf4j" } -logback = "ch.qos.logback:logback-classic:1.5.15" +logback = "ch.qos.logback:logback-classic:1.5.16" -signalservice = "com.github.turasa:signal-service-java:2.15.3_unofficial_114" -sqlite = "org.xerial:sqlite-jdbc:3.47.1.0" +signalservice = "com.github.turasa:signal-service-java:2.15.3_unofficial_115" +sqlite = "org.xerial:sqlite-jdbc:3.47.2.0" hikari = "com.zaxxer:HikariCP:6.2.1" junit-jupiter = "org.junit.jupiter:junit-jupiter:5.11.4" junit-launcher = "org.junit.platform:junit-platform-launcher:1.11.4" 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 b2f7dd29..5b1efbd6 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 @@ -11,6 +11,7 @@ import org.signal.libsignal.zkgroup.profiles.ProfileKey; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.whispersystems.signalservice.api.push.UsernameLinkComponents; +import org.whispersystems.signalservice.api.storage.IAPSubscriptionId; import org.whispersystems.signalservice.api.storage.SignalAccountRecord; import org.whispersystems.signalservice.api.storage.StorageId; import org.whispersystems.signalservice.api.util.UuidUtil; @@ -22,8 +23,12 @@ import java.sql.SQLException; import java.util.Arrays; import java.util.Optional; +import okio.ByteString; + import static org.asamk.signal.manager.util.Utils.firstNonEmpty; -import static org.asamk.signal.manager.util.Utils.firstNonNull; +import static org.whispersystems.signalservice.api.storage.AccountRecordExtensionsKt.safeSetBackupsSubscriber; +import static org.whispersystems.signalservice.api.storage.AccountRecordExtensionsKt.safeSetPayments; +import static org.whispersystems.signalservice.api.storage.AccountRecordExtensionsKt.safeSetSubscriber; /** * Processes {@link SignalAccountRecord}s. @@ -77,6 +82,35 @@ public class AccountRecordProcessor extends DefaultStorageRecordProcessor 0 + ? remote.payments + : local.payments; + + final ByteString donationSubscriberId; + final String donationSubscriberCurrencyCode; + + if (remote.subscriberId.size() > 0) { + donationSubscriberId = remote.subscriberId; + donationSubscriberCurrencyCode = remote.subscriberCurrencyCode; + } else { + donationSubscriberId = local.subscriberId; + donationSubscriberCurrencyCode = local.subscriberCurrencyCode; + } + + final ByteString backupsSubscriberId; + final IAPSubscriptionId backupsPurchaseToken; + + final var remoteBackupSubscriberData = remote.backupSubscriberData; + if (remoteBackupSubscriberData != null && remoteBackupSubscriberData.subscriberId.size() > 0) { + backupsSubscriberId = remoteBackupSubscriberData.subscriberId; + backupsPurchaseToken = IAPSubscriptionId.Companion.from(remoteBackupSubscriberData); + } else { + backupsSubscriberId = local.backupSubscriberData != null + ? local.backupSubscriberData.subscriberId + : ByteString.EMPTY; + backupsPurchaseToken = IAPSubscriptionId.Companion.from(local.backupSubscriberData); + } + final var mergedBuilder = SignalAccountRecord.Companion.newBuilder(remote.unknownFields().toByteArray()) .givenName(givenName) .familyName(familyName) @@ -96,9 +130,6 @@ public class AccountRecordProcessor extends DefaultStorageRecordProcessor { +interface StorageRecordProcessor> { void process(E remoteRecord) throws SQLException; } diff --git a/lib/src/main/java/org/asamk/signal/manager/syncStorage/StorageRecordUpdate.java b/lib/src/main/java/org/asamk/signal/manager/syncStorage/StorageRecordUpdate.java index 8dcb7b34..da8ccaf6 100644 --- a/lib/src/main/java/org/asamk/signal/manager/syncStorage/StorageRecordUpdate.java +++ b/lib/src/main/java/org/asamk/signal/manager/syncStorage/StorageRecordUpdate.java @@ -5,7 +5,7 @@ import org.whispersystems.signalservice.api.storage.SignalRecord; /** * Represents a pair of records: one old, and one new. The new record should replace the old. */ -record StorageRecordUpdate(E oldRecord, E newRecord) { +record StorageRecordUpdate>(E oldRecord, E newRecord) { @Override public String toString() {