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) }