From 8b7b184224cec163558cb46696ea8a6d80bbbe7c Mon Sep 17 00:00:00 2001 From: andrew-signal Date: Thu, 17 Apr 2025 12:01:37 -0400 Subject: [PATCH] Tweak Network.transformAndSetRemoteConfig to match changes to libsignal's RemoteConfig spec. --- .../internal/websocket/LibSignalNetworkExtensions.kt | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/libsignal-service/src/main/java/org/whispersystems/signalservice/internal/websocket/LibSignalNetworkExtensions.kt b/libsignal-service/src/main/java/org/whispersystems/signalservice/internal/websocket/LibSignalNetworkExtensions.kt index 98bf4f7b30..0e2d62a015 100644 --- a/libsignal-service/src/main/java/org/whispersystems/signalservice/internal/websocket/LibSignalNetworkExtensions.kt +++ b/libsignal-service/src/main/java/org/whispersystems/signalservice/internal/websocket/LibSignalNetworkExtensions.kt @@ -16,12 +16,11 @@ import java.io.IOException private const val TAG = "LibSignalNetworkExtensions" fun Network.transformAndSetRemoteConfig(remoteConfig: Map) { - val libsignalRemoteConfig = HashMap() - for (key in remoteConfig.keys) { - if (key.startsWith("android.libsignal.") or key.startsWith("global.libsignal.")) { - libsignalRemoteConfig[key] = JsonUtil.toJson(remoteConfig[key]) - } - } + val libsignalRemoteConfig: Map = remoteConfig + .filterKeys { it.startsWith("android.libsignal.") } + .mapKeys { (k, _) -> k.removePrefix("android.libsignal.") } + // libsignal-net's RemoteConfig diverges from JSON-spec by not quoting string values. + .mapValues { (_, v) -> (v as? String) ?: JsonUtil.toJson(v) } this.setRemoteConfig(libsignalRemoteConfig) }