diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a57b9785..30cf1501 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -4,7 +4,7 @@ coroutines = "1.11.0" junit = "6.1.3" micronaut-json-schema = "2.3.1" micronaut-core = "5.2.14" -signal-service = "2.15.3_unofficial_155" +signal-service = "2.15.3_unofficial_156" [libraries] bouncycastle = "org.bouncycastle:bcprov-jdk18on:1.86" 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 8438cdba..fe545636 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 @@ -492,7 +492,7 @@ public class StorageHelper { final var storageId = newStickerPackStorageIds.get(stickerPack.packId()); final var record = StorageSyncModels.localToRemoteRecord(stickerPack); newStorageRecords.add(new SignalStorageRecord(storageId, - new StorageRecord.Builder().stickerPack(record).build())); + new StorageRecord.Builder().installedStickerPack(record).build())); } connection.commit(); @@ -680,7 +680,8 @@ public class StorageHelper { throw new AssertionError("Missing local sticker pack model for storage id: " + storageId); } final var record = StorageSyncModels.localToRemoteRecord(stickerPack); - yield new SignalStorageRecord(storageId, new StorageRecord.Builder().stickerPack(record).build()); + yield new SignalStorageRecord(storageId, + new StorageRecord.Builder().installedStickerPack(record).build()); } case null, default -> { throw new AssertionError("Got unknown local storage record type: " + storageId); @@ -777,9 +778,9 @@ public class StorageHelper { logger.debug("Reading record {} of type contact", record.getId()); contactRecordProcessor.process(StorageRecordConvertersKt.toSignalContactRecord(record.getProto().contact, record.getId())); - } else if (record.getProto().stickerPack != null) { + } else if (record.getProto().installedStickerPack != null) { logger.debug("Reading record {} of type stickerPack", record.getId()); - stickerPackRecordProcessor.process(StorageRecordConvertersKt.toSignalStickerPackRecord(record.getProto().stickerPack, + stickerPackRecordProcessor.process(StorageRecordConvertersKt.toSignalInstalledStickerPackRecord(record.getProto().installedStickerPack, record.getId())); } else { unknownRecords.add(record.getId()); diff --git a/lib/src/main/java/org/asamk/signal/manager/storage/stickers/StickerStore.java b/lib/src/main/java/org/asamk/signal/manager/storage/stickers/StickerStore.java index 14fda15e..557785d5 100644 --- a/lib/src/main/java/org/asamk/signal/manager/storage/stickers/StickerStore.java +++ b/lib/src/main/java/org/asamk/signal/manager/storage/stickers/StickerStore.java @@ -6,7 +6,7 @@ import org.asamk.signal.manager.storage.Utils; import org.asamk.signal.manager.util.KeyUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.whispersystems.signalservice.api.storage.SignalStickerPackRecord; +import org.whispersystems.signalservice.api.storage.SignalInstalledStickerPackRecord; import org.whispersystems.signalservice.api.storage.StorageId; import java.sql.Connection; @@ -351,7 +351,7 @@ public class StickerStore { public void upsertFromStorageSync( final Connection connection, - final SignalStickerPackRecord record + final SignalInstalledStickerPackRecord record ) throws SQLException { final var remote = record.getProto(); final var packId = StickerPackId.deserialize(remote.packId.toByteArray()); diff --git a/lib/src/main/java/org/asamk/signal/manager/syncStorage/StickerPackRecordProcessor.java b/lib/src/main/java/org/asamk/signal/manager/syncStorage/StickerPackRecordProcessor.java index 52856f36..3f8c7976 100644 --- a/lib/src/main/java/org/asamk/signal/manager/syncStorage/StickerPackRecordProcessor.java +++ b/lib/src/main/java/org/asamk/signal/manager/syncStorage/StickerPackRecordProcessor.java @@ -3,14 +3,14 @@ package org.asamk.signal.manager.syncStorage; import org.asamk.signal.manager.api.StickerPackId; import org.asamk.signal.manager.storage.SignalAccount; import org.asamk.signal.manager.util.KeyUtils; -import org.whispersystems.signalservice.api.storage.SignalStickerPackRecord; +import org.whispersystems.signalservice.api.storage.SignalInstalledStickerPackRecord; import org.whispersystems.signalservice.api.storage.StorageId; import java.sql.Connection; import java.sql.SQLException; import java.util.Optional; -public class StickerPackRecordProcessor extends DefaultStorageRecordProcessor { +public class StickerPackRecordProcessor extends DefaultStorageRecordProcessor { private static final int PACK_ID_LENGTH = 16; private static final int PACK_KEY_LENGTH = 32; @@ -24,19 +24,19 @@ public class StickerPackRecordProcessor extends DefaultStorageRecordProcessor getMatching(final SignalStickerPackRecord remote) throws SQLException { + protected Optional getMatching(final SignalInstalledStickerPackRecord remote) throws SQLException { final var packId = StickerPackId.deserialize(remote.getProto().packId.toByteArray()); final var local = account.getStickerStore().getStickerPack(connection, packId); @@ -52,13 +52,13 @@ public class StickerPackRecordProcessor extends DefaultStorageRecordProcessor update) throws SQLException { + protected void updateLocal(final StorageRecordUpdate update) throws SQLException { account.getStickerStore().upsertFromStorageSync(connection, update.newRecord()); } } diff --git a/lib/src/main/java/org/asamk/signal/manager/syncStorage/StorageSyncModels.java b/lib/src/main/java/org/asamk/signal/manager/syncStorage/StorageSyncModels.java index d1a77361..073acb72 100644 --- a/lib/src/main/java/org/asamk/signal/manager/syncStorage/StorageSyncModels.java +++ b/lib/src/main/java/org/asamk/signal/manager/syncStorage/StorageSyncModels.java @@ -17,14 +17,14 @@ import org.whispersystems.signalservice.api.storage.SignalAccountRecord; import org.whispersystems.signalservice.api.storage.SignalContactRecord; import org.whispersystems.signalservice.api.storage.SignalGroupV1Record; import org.whispersystems.signalservice.api.storage.SignalGroupV2Record; -import org.whispersystems.signalservice.api.storage.SignalStickerPackRecord; +import org.whispersystems.signalservice.api.storage.SignalInstalledStickerPackRecord; import org.whispersystems.signalservice.internal.storage.protos.AccountRecord; import org.whispersystems.signalservice.internal.storage.protos.AccountRecord.UsernameLink; import org.whispersystems.signalservice.internal.storage.protos.ContactRecord; import org.whispersystems.signalservice.internal.storage.protos.ContactRecord.IdentityState; import org.whispersystems.signalservice.internal.storage.protos.GroupV1Record; import org.whispersystems.signalservice.internal.storage.protos.GroupV2Record; -import org.whispersystems.signalservice.internal.storage.protos.StickerPackRecord; +import org.whispersystems.signalservice.internal.storage.protos.InstalledStickerPackRecord; import java.sql.Connection; import java.sql.SQLException; @@ -168,8 +168,8 @@ public final class StorageSyncModels { return builder.build(); } - public static StickerPackRecord localToRemoteRecord(StickerPack stickerPack) { - final var builder = SignalStickerPackRecord.Companion.newBuilder(stickerPack.storageRecord()); + public static InstalledStickerPackRecord localToRemoteRecord(StickerPack stickerPack) { + final var builder = SignalInstalledStickerPackRecord.Companion.newBuilder(stickerPack.storageRecord()); builder.packId(ByteString.of(stickerPack.packId().serialize())); if (stickerPack.deletedTimestamp() > 0) { diff --git a/libsignal-version b/libsignal-version index f1b9cc4c..40eadc11 100644 --- a/libsignal-version +++ b/libsignal-version @@ -1 +1 @@ -0.105.0 +0.105.4 diff --git a/src/main/java/org/asamk/signal/BaseConfig.java b/src/main/java/org/asamk/signal/BaseConfig.java index 065167bc..7b2c65e3 100644 --- a/src/main/java/org/asamk/signal/BaseConfig.java +++ b/src/main/java/org/asamk/signal/BaseConfig.java @@ -8,7 +8,7 @@ public class BaseConfig { public static final String PROJECT_VERSION = BaseConfig.class.getPackage().getImplementationVersion(); static final String USER_AGENT_SIGNAL_ANDROID = Optional.ofNullable(System.getenv("SIGNAL_CLI_USER_AGENT")) - .orElse("Signal-Android/8.31.1"); + .orElse("Signal-Android/8.33.1"); static final String USER_AGENT_SIGNAL_CLI = PROJECT_NAME == null ? "signal-cli" : PROJECT_NAME + "/" + PROJECT_VERSION; diff --git a/src/main/resources/META-INF/native-image/org.asamk/signal-cli/reachability-metadata.json b/src/main/resources/META-INF/native-image/org.asamk/signal-cli/reachability-metadata.json index 4e023d81..afb981aa 100644 --- a/src/main/resources/META-INF/native-image/org.asamk/signal-cli/reachability-metadata.json +++ b/src/main/resources/META-INF/native-image/org.asamk/signal-cli/reachability-metadata.json @@ -2455,11 +2455,11 @@ "allDeclaredFields": true, "methods": [ { - "name": "number", + "name": "aci", "parameterTypes": [] }, { - "name": "aci", + "name": "number", "parameterTypes": [] } ] @@ -10178,6 +10178,29 @@ { "type": "org.whispersystems.signalservice.internal.storage.protos.GroupV2Record$StorySendMode" }, + { + "type": "org.whispersystems.signalservice.internal.storage.protos.InstalledStickerPackRecord", + "fields": [ + { + "name": "deletedAtTimestamp" + }, + { + "name": "packId" + }, + { + "name": "packKey" + }, + { + "name": "position" + } + ] + }, + { + "type": "org.whispersystems.signalservice.internal.storage.protos.InstalledStickerPackRecord$Builder" + }, + { + "type": "org.whispersystems.signalservice.internal.storage.protos.InstalledStickerPackRecord$Companion" + }, { "type": "org.whispersystems.signalservice.internal.storage.protos.ManifestRecord", "fields": [ @@ -10218,29 +10241,6 @@ } ] }, - { - "type": "org.whispersystems.signalservice.internal.storage.protos.StickerPackRecord", - "fields": [ - { - "name": "deletedAtTimestamp" - }, - { - "name": "packId" - }, - { - "name": "packKey" - }, - { - "name": "position" - } - ] - }, - { - "type": "org.whispersystems.signalservice.internal.storage.protos.StickerPackRecord$Builder" - }, - { - "type": "org.whispersystems.signalservice.internal.storage.protos.StickerPackRecord$Companion" - }, { "type": "org.whispersystems.signalservice.internal.storage.protos.StorageItem", "fields": [