diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ef39a50d..231496cb 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,7 +3,7 @@ slf4j = "2.0.18" junit = "6.1.0" micronaut-json-schema = "2.0.1" micronaut-core = "5.0.0" -signal-service = "2.15.3_unofficial_147" +signal-service = "2.15.3_unofficial_148" [libraries] bouncycastle = "org.bouncycastle:bcprov-jdk18on:1.84" diff --git a/lib/src/main/java/org/asamk/signal/manager/config/ServiceConfig.java b/lib/src/main/java/org/asamk/signal/manager/config/ServiceConfig.java index c2109f86..9b71f6fa 100644 --- a/lib/src/main/java/org/asamk/signal/manager/config/ServiceConfig.java +++ b/lib/src/main/java/org/asamk/signal/manager/config/ServiceConfig.java @@ -31,7 +31,8 @@ public class ServiceConfig { public static AccountAttributes.Capabilities getCapabilities(boolean isPrimaryDevice) { final var attachmentBackfill = !isPrimaryDevice; final var spqr = true; - return new AccountAttributes.Capabilities(true, true, attachmentBackfill, spqr); + final var usernameSyncChangeMessage = !isPrimaryDevice; + return new AccountAttributes.Capabilities(true, true, attachmentBackfill, spqr, usernameSyncChangeMessage); } public static ServiceEnvironmentConfig getServiceEnvironmentConfig( diff --git a/lib/src/main/java/org/asamk/signal/manager/helper/ProfileHelper.java b/lib/src/main/java/org/asamk/signal/manager/helper/ProfileHelper.java index 64e3a764..308102a0 100644 --- a/lib/src/main/java/org/asamk/signal/manager/helper/ProfileHelper.java +++ b/lib/src/main/java/org/asamk/signal/manager/helper/ProfileHelper.java @@ -17,6 +17,7 @@ import org.asamk.signal.manager.util.PaymentUtils; import org.asamk.signal.manager.util.ProfileUtils; import org.asamk.signal.manager.util.Utils; import org.jetbrains.annotations.Nullable; +import org.signal.core.util.ExpiringProfileCredentialUtil; import org.signal.libsignal.protocol.IdentityKey; import org.signal.libsignal.protocol.InvalidKeyException; import org.signal.libsignal.zkgroup.profiles.ExpiringProfileKeyCredential; @@ -32,7 +33,6 @@ import org.whispersystems.signalservice.api.profiles.SignalServiceProfile; import org.whispersystems.signalservice.api.push.SignalServiceAddress; import org.whispersystems.signalservice.api.push.exceptions.NotFoundException; import org.whispersystems.signalservice.api.services.ProfileService; -import org.whispersystems.signalservice.api.util.ExpiringProfileCredentialUtil; import java.io.IOException; import java.io.OutputStream; diff --git a/lib/src/main/java/org/asamk/signal/manager/internal/SignalDependencies.java b/lib/src/main/java/org/asamk/signal/manager/internal/SignalDependencies.java index 55795714..6eccb005 100644 --- a/lib/src/main/java/org/asamk/signal/manager/internal/SignalDependencies.java +++ b/lib/src/main/java/org/asamk/signal/manager/internal/SignalDependencies.java @@ -3,6 +3,7 @@ package org.asamk.signal.manager.internal; import org.asamk.signal.manager.config.ServiceConfig; import org.asamk.signal.manager.config.ServiceEnvironmentConfig; import org.asamk.signal.manager.util.Utils; +import org.signal.core.util.UptimeSleepTimer; import org.signal.libsignal.metadata.certificate.CertificateValidator; import org.signal.libsignal.net.Network; import org.signal.libsignal.protocol.SignalProtocolAddress; @@ -40,7 +41,6 @@ import org.whispersystems.signalservice.api.services.ProfileService; import org.whispersystems.signalservice.api.storage.StorageServiceApi; import org.whispersystems.signalservice.api.svr.SecureValueRecovery; import org.whispersystems.signalservice.api.util.CredentialsProvider; -import org.whispersystems.signalservice.api.util.UptimeSleepTimer; import org.whispersystems.signalservice.api.websocket.SignalWebSocket; import org.whispersystems.signalservice.internal.push.PushServiceSocket; import org.whispersystems.signalservice.internal.websocket.LibSignalChatConnection; diff --git a/lib/src/main/java/org/asamk/signal/manager/internal/SignalWebSocketHealthMonitor.java b/lib/src/main/java/org/asamk/signal/manager/internal/SignalWebSocketHealthMonitor.java index 656b6646..10f7a2a9 100644 --- a/lib/src/main/java/org/asamk/signal/manager/internal/SignalWebSocketHealthMonitor.java +++ b/lib/src/main/java/org/asamk/signal/manager/internal/SignalWebSocketHealthMonitor.java @@ -1,10 +1,10 @@ package org.asamk.signal.manager.internal; import org.jetbrains.annotations.NotNull; +import org.signal.core.util.SleepTimer; import org.signal.network.util.Preconditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.whispersystems.signalservice.api.util.SleepTimer; import org.whispersystems.signalservice.api.websocket.HealthMonitor; import org.whispersystems.signalservice.api.websocket.SignalWebSocket; import org.whispersystems.signalservice.api.websocket.WebSocketConnectionState; 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 dff20afe..e69e2df6 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 @@ -776,6 +776,20 @@ "type": "java.lang.Class", "jniAccessible": true, "methods": [ + { + "name": "forName", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "forName", + "parameterTypes": [ + "java.lang.String", + "boolean", + "java.lang.ClassLoader" + ] + }, { "name": "getCanonicalName", "parameterTypes": [] @@ -784,6 +798,10 @@ "name": "getClassLoader", "parameterTypes": [] }, + { + "name": "getName", + "parameterTypes": [] + }, { "name": "getPermittedSubclasses", "parameterTypes": [] @@ -819,7 +837,27 @@ ] }, { - "type": "java.lang.ClassNotFoundException" + "type": "java.lang.ClassNotFoundException", + "jniAccessible": true, + "methods": [ + { + "name": "", + "parameterTypes": [] + }, + { + "name": "", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "", + "parameterTypes": [ + "java.lang.String", + "java.lang.Throwable" + ] + } + ] }, { "type": "java.lang.ClassValue" @@ -959,6 +997,18 @@ "name": "currentThread", "parameterTypes": [] }, + { + "name": "getContextClassLoader", + "parameterTypes": [] + }, + { + "name": "getId", + "parameterTypes": [] + }, + { + "name": "getName", + "parameterTypes": [] + }, { "name": "getStackTrace", "parameterTypes": [] @@ -966,6 +1016,18 @@ { "name": "isVirtual", "parameterTypes": [] + }, + { + "name": "setContextClassLoader", + "parameterTypes": [ + "java.lang.ClassLoader" + ] + }, + { + "name": "setName", + "parameterTypes": [ + "java.lang.String" + ] } ] }, @@ -979,10 +1041,18 @@ "java.lang.Throwable" ] }, + { + "name": "getCause", + "parameterTypes": [] + }, { "name": "getMessage", "parameterTypes": [] }, + { + "name": "getStackTrace", + "parameterTypes": [] + }, { "name": "getSuppressed", "parameterTypes": [] @@ -1586,7 +1656,42 @@ }, { "type": "kotlin.reflect.jvm.internal.impl.resolve.scopes.DescriptorKindFilter", - "allPublicFields": true + "allPublicFields": true, + "fields": [ + { + "name": "ALL" + }, + { + "name": "CALLABLES" + }, + { + "name": "CLASSIFIERS" + }, + { + "name": "Companion" + }, + { + "name": "FUNCTIONS" + }, + { + "name": "NON_SINGLETON_CLASSIFIERS" + }, + { + "name": "PACKAGES" + }, + { + "name": "SINGLETON_CLASSIFIERS" + }, + { + "name": "TYPE_ALIASES" + }, + { + "name": "VALUES" + }, + { + "name": "VARIABLES" + } + ] }, { "type": "kotlinx.coroutines.AwaitAll"