From 2b975a37041db92a2bae28260a1b7e846b7d1300 Mon Sep 17 00:00:00 2001 From: Pulak Date: Fri, 16 Jan 2026 22:27:49 +0530 Subject: [PATCH 1/3] Optimised connection params building --- .../io/livekit/android/room/SignalClient.kt | 41 +++++++++++-------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/livekit-android-sdk/src/main/java/io/livekit/android/room/SignalClient.kt b/livekit-android-sdk/src/main/java/io/livekit/android/room/SignalClient.kt index 735fed9c..2404c9b8 100644 --- a/livekit-android-sdk/src/main/java/io/livekit/android/room/SignalClient.kt +++ b/livekit-android-sdk/src/main/java/io/livekit/android/room/SignalClient.kt @@ -169,7 +169,7 @@ constructor( // Clean up any pre-existing connection. close(reason = "Starting new connection", shouldClearQueuedRequests = false) - val wsUrlString = "${url.toWebsocketUrl()}/rtc" + createConnectionParams(getClientInfo(), options, roomOptions) + val wsUrlString = "${url.toWebsocketUrl()}/rtc${createConnectionParams(getClientInfo(), options, roomOptions)}" isReconnecting = options.reconnect LKLog.i { "connecting to $wsUrlString" } @@ -196,34 +196,39 @@ constructor( options: ConnectOptions, roomOptions: RoomOptions, ): String { - val queryParams = mutableListOf>() - queryParams.add(CONNECT_QUERY_PROTOCOL to options.protocolVersion.value.toString()) + val queryBuilder = StringBuilder() + var first = true + + fun addParam(key: String, value: String) { + queryBuilder.append(if (first) "?" else "&") + .append(key).append("=").append(value) + first = false + } + + addParam(CONNECT_QUERY_PROTOCOL, options.protocolVersion.value.toString()) if (options.reconnect) { - queryParams.add(CONNECT_QUERY_RECONNECT to 1.toString()) + addParam(CONNECT_QUERY_RECONNECT, "1") options.participantSid?.let { sid -> - queryParams.add(CONNECT_QUERY_PARTICIPANT_SID to sid) + addParam(CONNECT_QUERY_PARTICIPANT_SID, sid) } } val autoSubscribe = if (options.autoSubscribe) 1 else 0 - queryParams.add(CONNECT_QUERY_AUTOSUBSCRIBE to autoSubscribe.toString()) + addParam(CONNECT_QUERY_AUTOSUBSCRIBE, autoSubscribe.toString()) val adaptiveStream = if (roomOptions.adaptiveStream) 1 else 0 - queryParams.add(CONNECT_QUERY_ADAPTIVE_STREAM to adaptiveStream.toString()) + addParam(CONNECT_QUERY_ADAPTIVE_STREAM, adaptiveStream.toString()) // Client info - queryParams.add(CONNECT_QUERY_SDK to "android") - queryParams.add(CONNECT_QUERY_VERSION to clientInfo.version) - queryParams.add(CONNECT_QUERY_DEVICE_MODEL to clientInfo.deviceModel) - queryParams.add(CONNECT_QUERY_OS to clientInfo.os) - queryParams.add(CONNECT_QUERY_OS_VERSION to clientInfo.osVersion) - queryParams.add(CONNECT_QUERY_NETWORK_TYPE to networkInfo.getNetworkType().protoName) - - return queryParams.foldIndexed("") { index, acc, pair -> - val separator = if (index == 0) "?" else "&" - acc + separator + "${pair.first}=${pair.second}" - } + addParam(CONNECT_QUERY_SDK, "android") + addParam(CONNECT_QUERY_VERSION, clientInfo.version) + addParam(CONNECT_QUERY_DEVICE_MODEL, clientInfo.deviceModel) + addParam(CONNECT_QUERY_OS, clientInfo.os) + addParam(CONNECT_QUERY_OS_VERSION, clientInfo.osVersion) + addParam(CONNECT_QUERY_NETWORK_TYPE, networkInfo.getNetworkType().protoName) + + return queryBuilder.toString() } /** From 99335f66ba1e1b33e6576fea058d12ce4922f69f Mon Sep 17 00:00:00 2001 From: Pulak Date: Fri, 16 Jan 2026 22:52:19 +0530 Subject: [PATCH 2/3] Create chubby-ideas-bow.md --- .changeset/chubby-ideas-bow.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/chubby-ideas-bow.md diff --git a/.changeset/chubby-ideas-bow.md b/.changeset/chubby-ideas-bow.md new file mode 100644 index 00000000..e05ed3b7 --- /dev/null +++ b/.changeset/chubby-ideas-bow.md @@ -0,0 +1,5 @@ +--- +"client-sdk-android": patch +--- + +Optimised connection params building From 5a8d8a00fb863c930bd2c4d9ec4a4b4763efa087 Mon Sep 17 00:00:00 2001 From: davidliu Date: Tue, 20 Jan 2026 01:58:09 -0800 Subject: [PATCH 3/3] spotless --- .../src/main/java/io/livekit/android/room/SignalClient.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/livekit-android-sdk/src/main/java/io/livekit/android/room/SignalClient.kt b/livekit-android-sdk/src/main/java/io/livekit/android/room/SignalClient.kt index 2404c9b8..f5190f0a 100644 --- a/livekit-android-sdk/src/main/java/io/livekit/android/room/SignalClient.kt +++ b/livekit-android-sdk/src/main/java/io/livekit/android/room/SignalClient.kt @@ -1,5 +1,5 @@ /* - * Copyright 2023-2025 LiveKit, Inc. + * Copyright 2023-2026 LiveKit, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License.