diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 097aa920..16885bbb 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -10,7 +10,7 @@ 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.18" -signalservice = "com.github.turasa:signal-service-java:2.15.3_unofficial_131" +signalservice = "com.github.turasa:signal-service-java:2.15.3_unofficial_132" sqlite = "org.xerial:sqlite-jdbc:3.50.3.0" hikari = "com.zaxxer:HikariCP:7.0.2" junit-jupiter = "org.junit.jupiter:junit-jupiter:5.13.4" diff --git a/lib/src/main/java/org/asamk/signal/manager/api/MessageEnvelope.java b/lib/src/main/java/org/asamk/signal/manager/api/MessageEnvelope.java index d8438f5d..1d438c30 100644 --- a/lib/src/main/java/org/asamk/signal/manager/api/MessageEnvelope.java +++ b/lib/src/main/java/org/asamk/signal/manager/api/MessageEnvelope.java @@ -627,7 +627,7 @@ public record MessageEnvelope( RecipientResolver recipientResolver, RecipientAddressResolver addressResolver ) { - return new Read(addressResolver.resolveRecipientAddress(recipientResolver.resolveRecipient(readMessage.getSender())) + return new Read(addressResolver.resolveRecipientAddress(recipientResolver.resolveRecipient(readMessage.getSenderAci())) .toApiRecipientAddress(), readMessage.getTimestamp()); } } diff --git a/lib/src/main/java/org/asamk/signal/manager/helper/SyncHelper.java b/lib/src/main/java/org/asamk/signal/manager/helper/SyncHelper.java index 108ba1a4..fb9e1008 100644 --- a/lib/src/main/java/org/asamk/signal/manager/helper/SyncHelper.java +++ b/lib/src/main/java/org/asamk/signal/manager/helper/SyncHelper.java @@ -86,7 +86,7 @@ public class SyncHelper { .sendSyncMessage(SignalServiceSyncMessage.forFetchLatest(SignalServiceSyncMessage.FetchType.STORAGE_MANIFEST)); } - public void sendSyncReceiptMessage(ServiceId sender, SignalServiceReceiptMessage receiptMessage) { + public void sendSyncReceiptMessage(ServiceId.ACI sender, SignalServiceReceiptMessage receiptMessage) { if (receiptMessage.isReadReceipt()) { final var readMessages = receiptMessage.getTimestamps() .stream() diff --git a/lib/src/main/java/org/asamk/signal/manager/internal/ManagerImpl.java b/lib/src/main/java/org/asamk/signal/manager/internal/ManagerImpl.java index 31394cd5..b18ffa99 100644 --- a/lib/src/main/java/org/asamk/signal/manager/internal/ManagerImpl.java +++ b/lib/src/main/java/org/asamk/signal/manager/internal/ManagerImpl.java @@ -760,11 +760,9 @@ public class ManagerImpl implements Manager { final var recipientId = context.getRecipientHelper().resolveRecipient(sender); final var result = context.getSendHelper().sendReceiptMessage(receiptMessage, recipientId); - final var serviceId = account.getRecipientAddressResolver() - .resolveRecipientAddress(recipientId) - .serviceId(); - if (serviceId.isPresent()) { - context.getSyncHelper().sendSyncReceiptMessage(serviceId.get(), receiptMessage); + final var aci = account.getRecipientAddressResolver().resolveRecipientAddress(recipientId).aci(); + if (aci.isPresent()) { + context.getSyncHelper().sendSyncReceiptMessage(aci.get(), receiptMessage); } return new SendMessageResults(timestamp, Map.of(sender, List.of(toSendMessageResult(result)))); } catch (UnregisteredRecipientException e) { diff --git a/lib/src/main/java/org/asamk/signal/manager/storage/protocol/LegacyJsonIdentityKeyStore.java b/lib/src/main/java/org/asamk/signal/manager/storage/protocol/LegacyJsonIdentityKeyStore.java index 632efc7e..8e4349d6 100644 --- a/lib/src/main/java/org/asamk/signal/manager/storage/protocol/LegacyJsonIdentityKeyStore.java +++ b/lib/src/main/java/org/asamk/signal/manager/storage/protocol/LegacyJsonIdentityKeyStore.java @@ -85,7 +85,12 @@ public class LegacyJsonIdentityKeyStore { JsonNode node = jsonParser.getCodec().readTree(jsonParser); var localRegistrationId = node.get("registrationId").asInt(); - var identityKeyPair = new IdentityKeyPair(Base64.getDecoder().decode(node.get("identityKey").asText())); + IdentityKeyPair identityKeyPair = null; + try { + identityKeyPair = new IdentityKeyPair(Base64.getDecoder().decode(node.get("identityKey").asText())); + } catch (InvalidKeyException e) { + throw new IOException("Invalid stored identity key pair", e); + } var identities = new ArrayList(); diff --git a/src/main/java/org/asamk/signal/BaseConfig.java b/src/main/java/org/asamk/signal/BaseConfig.java index bbce12a9..e3d50cf1 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/7.57.1"); + .orElse("Signal-Android/7.62.0"); static final String USER_AGENT_SIGNAL_CLI = PROJECT_NAME == null ? "signal-cli" : PROJECT_NAME + "/" + PROJECT_VERSION;