diff --git a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.kt b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.kt index f0b746be0..21696470a 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.kt @@ -1475,6 +1475,8 @@ class CallActivity : CallBaseActivity() { signalingSettingsOverall.ocs!!.settings!!.externalSignalingServer externalSignalingServer!!.externalSignalingTicket = signalingSettingsOverall.ocs!!.settings!!.externalSignalingTicket + externalSignalingServer!!.federation = + signalingSettingsOverall.ocs!!.settings!!.federation hasExternalSignalingServer = true } else { hasExternalSignalingServer = false diff --git a/app/src/main/java/com/nextcloud/talk/models/ExternalSignalingServer.kt b/app/src/main/java/com/nextcloud/talk/models/ExternalSignalingServer.kt index 9ed3f7b4d..b561f9bde 100644 --- a/app/src/main/java/com/nextcloud/talk/models/ExternalSignalingServer.kt +++ b/app/src/main/java/com/nextcloud/talk/models/ExternalSignalingServer.kt @@ -10,6 +10,7 @@ package com.nextcloud.talk.models import android.os.Parcelable import com.bluelinelabs.logansquare.annotation.JsonField import com.bluelinelabs.logansquare.annotation.JsonObject +import com.nextcloud.talk.models.json.signaling.settings.FederationSettings import kotlinx.parcelize.Parcelize @Parcelize @@ -18,8 +19,10 @@ data class ExternalSignalingServer( @JsonField(name = ["externalSignalingServer"]) var externalSignalingServer: String? = null, @JsonField(name = ["externalSignalingTicket"]) - var externalSignalingTicket: String? = null + var externalSignalingTicket: String? = null, + @JsonField(name = ["federation"]) + var federation: FederationSettings? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' - constructor() : this(null, null) + constructor() : this(null, null, null) } diff --git a/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/FederationHelloAuthParams.kt b/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/FederationHelloAuthParams.kt new file mode 100644 index 000000000..396ab7f2d --- /dev/null +++ b/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/FederationHelloAuthParams.kt @@ -0,0 +1,24 @@ +/* + * Nextcloud Talk - Android Client + * + * SPDX-FileCopyrightText: 2024 Daniel Calviño Sánchez + * SPDX-License-Identifier: GPL-3.0-or-later + */ +package com.nextcloud.talk.models.json.signaling.settings + +import android.os.Parcelable +import com.bluelinelabs.logansquare.annotation.JsonField +import com.bluelinelabs.logansquare.annotation.JsonObject +import kotlinx.parcelize.Parcelize +import kotlinx.serialization.Serializable + +@Parcelize +@JsonObject +@Serializable +data class FederationHelloAuthParams( + @JsonField(name = ["token"]) + var token: String? = null, +) : Parcelable { + // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' + constructor() : this(null) +} diff --git a/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/FederationSettings.kt b/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/FederationSettings.kt new file mode 100644 index 000000000..27c29364c --- /dev/null +++ b/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/FederationSettings.kt @@ -0,0 +1,30 @@ +/* + * Nextcloud Talk - Android Client + * + * SPDX-FileCopyrightText: 2024 Daniel Calviño Sánchez + * SPDX-License-Identifier: GPL-3.0-or-later + */ +package com.nextcloud.talk.models.json.signaling.settings + +import android.os.Parcelable +import com.bluelinelabs.logansquare.annotation.JsonField +import com.bluelinelabs.logansquare.annotation.JsonObject +import kotlinx.parcelize.Parcelize +import kotlinx.serialization.Serializable + +@Parcelize +@JsonObject +@Serializable +data class FederationSettings( + @JsonField(name = ["server"]) + var server: String? = null, + @JsonField(name = ["nextcloudServer"]) + var nextcloudServer: String? = null, + @JsonField(name = ["helloAuthParams"]) + var helloAuthParams: FederationHelloAuthParams? = null, + @JsonField(name = ["roomId"]) + var roomId: String? = null +) : Parcelable { + // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' + constructor() : this(null, null, null, null) +} diff --git a/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/SignalingSettings.kt b/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/SignalingSettings.kt index 55d50664e..89dc837a5 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/SignalingSettings.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/signaling/settings/SignalingSettings.kt @@ -24,8 +24,10 @@ data class SignalingSettings( @JsonField(name = ["server"]) var externalSignalingServer: String? = null, @JsonField(name = ["ticket"]) - var externalSignalingTicket: String? = null + var externalSignalingTicket: String? = null, + @JsonField(name = ["federation"]) + var federation: FederationSettings? = null ) : Parcelable { // This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject' - constructor() : this(null, null, null) + constructor() : this(null, null, null, null) }