diff --git a/data/src/commonMain/kotlin/com/wire/kalium/logic/data/call/CallClient.kt b/data/src/commonMain/kotlin/com/wire/kalium/logic/data/call/CallClient.kt index 0c2f3bb9b79..7545545157e 100644 --- a/data/src/commonMain/kotlin/com/wire/kalium/logic/data/call/CallClient.kt +++ b/data/src/commonMain/kotlin/com/wire/kalium/logic/data/call/CallClient.kt @@ -18,55 +18,21 @@ package com.wire.kalium.logic.data.call -import com.wire.kalium.util.serialization.LenientJsonSerializer -import kotlinx.serialization.ExperimentalSerializationApi -import kotlinx.serialization.KSerializer import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable -import kotlinx.serialization.descriptors.PrimitiveKind -import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor -import kotlinx.serialization.descriptors.SerialDescriptor -import kotlinx.serialization.descriptors.nullable -import kotlinx.serialization.encoding.Decoder -import kotlinx.serialization.encoding.Encoder +import kotlinx.serialization.json.Json @Serializable data class CallClient( @SerialName("userid") val userId: String, @SerialName("clientid") val clientId: String, - @SerialName("in_subconv") val isMemberOfSubconversation: Boolean = false, - @SerialName("quality") - @Serializable(with = CallQuality.CallQualityAsIntSerializer::class) - val quality: CallQuality = CallQuality.LOW + @SerialName("in_subconv") val isMemberOfSubconversation: Boolean = false ) @Serializable data class CallClientList( @SerialName("clients") val clients: List ) { - fun toJsonString(): String = LenientJsonSerializer.json.encodeToString(serializer(), this) -} - -enum class CallQuality { - ANY, - LOW, - HIGH; - - data object CallQualityAsIntSerializer : KSerializer { - override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("quality", PrimitiveKind.INT).nullable - - override fun serialize(encoder: Encoder, value: CallQuality) { - encoder.encodeInt(value.ordinal) - } - - @OptIn(ExperimentalSerializationApi::class) - override fun deserialize(decoder: Decoder): CallQuality { - val value = if (decoder.decodeNotNullMark()) decoder.decodeInt() else 0 - return when (value) { - 1 -> LOW - 2 -> HIGH - else -> ANY - } - } - } + // TODO(optimization): Use a shared Json instance instead of creating one every time. + fun toJsonString(): String = Json { isLenient = true }.encodeToString(serializer(), this) } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6c3b94a0f59..9060b93e117 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,7 +5,7 @@ activity-compose = "1.9.0" app-compat = "1.6.1" android-paging3 = "3.2.1" cli-kt = "3.5.0" -coroutines = "1.8.1" +coroutines = "1.8.0" compose-compiler = "1.5.13" compose-ui = "1.6.6" compose-material = "1.6.6" @@ -17,12 +17,12 @@ okio = "3.9.0" ok-http = "4.12.0" mockative = "2.2.0" android-work = "2.9.0" -android-test-runner = "1.6.2" -android-test-core-ktx = "1.6.1" -android-test-rules = "1.6.1" -android-test-core = "1.6.1" +android-test-runner = "1.5.2" +android-test-core-ktx = "1.5.0" +android-test-rules = "1.5.0" +android-test-core = "1.5.0" androidx-arch = "2.2.0" -androidx-test-orchestrator = "1.5.1" +androidx-test-orchestrator = "1.4.2" androidx-sqlite = "2.4.0" benasher-uuid = "0.8.0" ktx-datetime = { strictly = "0.5.0" } @@ -37,12 +37,12 @@ sqldelight = "2.0.1" sqlcipher-android = "4.5.6" pbandk = "0.14.2" turbine = "1.1.0" -avs = "10.0.1" +avs = "9.10.16" jna = "5.14.0" core-crypto = "2.0.0" core-crypto-multiplatform = "0.6.0-rc.3-multiplatform-pre1" completeKotlin = "1.1.0" -desugar-jdk = "2.1.3" +desugar-jdk = "2.0.4" kermit = "2.0.3" detekt = "1.23.6" agp = "8.5.2" @@ -50,7 +50,7 @@ dokka = "1.8.20" carthage = "0.0.1" libsodiumBindings = "0.8.7" protobufCodegen = "0.9.4" -annotation = "1.9.1" +annotation = "1.7.1" mordant = "2.0.0-beta13" apache-tika = "2.9.2" mockk = "1.13.10" diff --git a/logic/src/commonJvmAndroid/kotlin/com/wire/kalium/logic/feature/call/CallManagerImpl.kt b/logic/src/commonJvmAndroid/kotlin/com/wire/kalium/logic/feature/call/CallManagerImpl.kt index 90244f7eb76..693c76d98f9 100644 --- a/logic/src/commonJvmAndroid/kotlin/com/wire/kalium/logic/feature/call/CallManagerImpl.kt +++ b/logic/src/commonJvmAndroid/kotlin/com/wire/kalium/logic/feature/call/CallManagerImpl.kt @@ -463,19 +463,14 @@ class CallManagerImpl internal constructor( callClients: CallClientList ) { withCalling { - // Mapping Needed to support calls between federated and non federated environments (domain separation) + // Needed to support calls between federated and non federated environments val clients = callClients.clients.map { callClient -> CallClient( - userId = federatedIdMapper.parseToFederatedId(callClient.userId), - clientId = callClient.clientId, - isMemberOfSubconversation = callClient.isMemberOfSubconversation, - quality = callClient.quality + federatedIdMapper.parseToFederatedId(callClient.userId), + callClient.clientId ) } val clientsJson = CallClientList(clients).toJsonString() - callingLogger.d( - "$TAG - wcall_request_video_streams() called -> Requesting video streams for conversation = ${conversationId.toLogString()}" - ) val conversationIdString = federatedIdMapper.parseToFederatedId(conversationId) calling.wcall_request_video_streams( inst = it, diff --git a/util/src/commonMain/kotlin/com.wire.kalium.util/serialization/LenientJsonSerializer.kt b/util/src/commonMain/kotlin/com.wire.kalium.util/serialization/LenientJsonSerializer.kt deleted file mode 100644 index 3d6507cf8ff..00000000000 --- a/util/src/commonMain/kotlin/com.wire.kalium.util/serialization/LenientJsonSerializer.kt +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Wire - * Copyright (C) 2024 Wire Swiss GmbH - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see http://www.gnu.org/licenses/. - */ -package com.wire.kalium.util.serialization - -import kotlinx.serialization.json.Json - -/** - * The json serializer for shared usage. - */ -object LenientJsonSerializer { - - val json = Json { - isLenient = true - encodeDefaults = true - ignoreUnknownKeys = true - } -}