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 1b04710a4a0..a3c0594afae 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 @@ -39,9 +39,9 @@ import com.wire.kalium.logic.data.call.CallRepository import com.wire.kalium.logic.data.call.CallStatus import com.wire.kalium.logic.data.call.CallType import com.wire.kalium.logic.data.call.EpochInfo +import com.wire.kalium.logic.data.call.CallHelperImpl import com.wire.kalium.logic.data.call.Participant import com.wire.kalium.logic.data.call.TestVideoType -import com.wire.kalium.logic.data.call.MLSCallHelperImpl import com.wire.kalium.logic.data.call.VideoState import com.wire.kalium.logic.data.call.VideoStateChecker import com.wire.kalium.logic.data.call.mapper.CallMapper @@ -216,7 +216,7 @@ class CallManagerImpl internal constructor( .keepingStrongReference(), closeCallHandler = OnCloseCall( callRepository = callRepository, - mlsCallHelper = MLSCallHelperImpl(callRepository, subconversationRepository, userConfigRepository), + callHelper = CallHelperImpl(callRepository, subconversationRepository, userConfigRepository), networkStateObserver = networkStateObserver, scope = scope, qualifiedIdMapper = qualifiedIdMapper @@ -543,7 +543,7 @@ class CallManagerImpl internal constructor( participantMapper = ParticipantMapperImpl(videoStateChecker, callMapper), userRepository = userRepository, userConfigRepository = userConfigRepository, - mlsCallHelper = MLSCallHelperImpl( + callHelper = CallHelperImpl( callRepository = callRepository, subconversationRepository = subconversationRepository, userConfigRepository = userConfigRepository diff --git a/logic/src/commonJvmAndroid/kotlin/com/wire/kalium/logic/feature/call/scenario/OnCloseCall.kt b/logic/src/commonJvmAndroid/kotlin/com/wire/kalium/logic/feature/call/scenario/OnCloseCall.kt index a5098b2d078..60aaa94012f 100644 --- a/logic/src/commonJvmAndroid/kotlin/com/wire/kalium/logic/feature/call/scenario/OnCloseCall.kt +++ b/logic/src/commonJvmAndroid/kotlin/com/wire/kalium/logic/feature/call/scenario/OnCloseCall.kt @@ -28,7 +28,7 @@ import com.wire.kalium.logger.obfuscateId import com.wire.kalium.logic.callingLogger import com.wire.kalium.logic.data.call.CallRepository import com.wire.kalium.logic.data.call.CallStatus -import com.wire.kalium.logic.data.call.MLSCallHelper +import com.wire.kalium.logic.data.call.CallHelper import com.wire.kalium.logic.data.conversation.Conversation import com.wire.kalium.logic.data.id.ConversationId import com.wire.kalium.logic.data.id.QualifiedIdMapper @@ -40,7 +40,7 @@ import kotlinx.coroutines.launch @Suppress("LongParameterList") class OnCloseCall( private val callRepository: CallRepository, - private val mlsCallHelper: MLSCallHelper, + private val callHelper: CallHelper, private val scope: CoroutineScope, private val qualifiedIdMapper: QualifiedIdMapper, private val networkStateObserver: NetworkStateObserver @@ -79,7 +79,7 @@ class OnCloseCall( callRepository.getCallMetadataProfile()[conversationIdWithDomain]?.conversationType if (callRepository.getCallMetadataProfile()[conversationIdWithDomain]?.protocol is Conversation.ProtocolInfo.MLS) { - mlsCallHelper.handleCallTermination(conversationIdWithDomain, conversationType) + callHelper.handleCallTermination(conversationIdWithDomain, conversationType) } callingLogger.i("[OnCloseCall] -> ConversationId: ${conversationId.obfuscateId()} | callStatus: $callStatus") } diff --git a/logic/src/commonJvmAndroid/kotlin/com/wire/kalium/logic/feature/call/scenario/OnParticipantListChanged.kt b/logic/src/commonJvmAndroid/kotlin/com/wire/kalium/logic/feature/call/scenario/OnParticipantListChanged.kt index 18995e095bb..3d28055c09a 100644 --- a/logic/src/commonJvmAndroid/kotlin/com/wire/kalium/logic/feature/call/scenario/OnParticipantListChanged.kt +++ b/logic/src/commonJvmAndroid/kotlin/com/wire/kalium/logic/feature/call/scenario/OnParticipantListChanged.kt @@ -25,7 +25,7 @@ import com.wire.kalium.logic.callingLogger import com.wire.kalium.logic.configuration.UserConfigRepository import com.wire.kalium.logic.data.call.CallParticipants import com.wire.kalium.logic.data.call.CallRepository -import com.wire.kalium.logic.data.call.MLSCallHelper +import com.wire.kalium.logic.data.call.CallHelper import com.wire.kalium.logic.data.call.Participant import com.wire.kalium.logic.data.call.mapper.ParticipantMapper import com.wire.kalium.logic.data.id.ConversationId @@ -47,7 +47,7 @@ class OnParticipantListChanged internal constructor( private val participantMapper: ParticipantMapper, private val userRepository: UserRepository, private val userConfigRepository: UserConfigRepository, - private val mlsCallHelper: MLSCallHelper, + private val callHelper: CallHelper, private val endCall: suspend (conversationId: ConversationId) -> Unit, private val callingScope: CoroutineScope, private val jsonDecoder: Json = Json @@ -81,7 +81,7 @@ class OnParticipantListChanged internal constructor( val currentCall = callRepository.establishedCallsFlow().first().firstOrNull() currentCall?.let { - val shouldEndSFTOneOnOneCall = mlsCallHelper.shouldEndSFTOneOnOneCall( + val shouldEndSFTOneOnOneCall = callHelper.shouldEndSFTOneOnOneCall( conversationId = conversationIdWithDomain, callProtocol = callProtocol, conversationType = it.conversationType, diff --git a/logic/src/commonMain/kotlin/com/wire/kalium/logic/data/call/MLSCallHelper.kt b/logic/src/commonMain/kotlin/com/wire/kalium/logic/data/call/CallHelper.kt similarity index 84% rename from logic/src/commonMain/kotlin/com/wire/kalium/logic/data/call/MLSCallHelper.kt rename to logic/src/commonMain/kotlin/com/wire/kalium/logic/data/call/CallHelper.kt index 9a87fee9c3d..38c073719a8 100644 --- a/logic/src/commonMain/kotlin/com/wire/kalium/logic/data/call/MLSCallHelper.kt +++ b/logic/src/commonMain/kotlin/com/wire/kalium/logic/data/call/CallHelper.kt @@ -30,13 +30,14 @@ import com.wire.kalium.logic.functional.onSuccess import com.wire.kalium.network.api.authenticated.conversation.SubconversationDeleteRequest /** - * Helper class to handle MLS call related operations. + * Helper class to handle call related operations. */ -interface MLSCallHelper { +interface CallHelper { /** - * Check if the OneOnOne MLS call that uses SFT should be ended. - * The call should be ended if the call has two participants and the second participant has lost audio. + * Check if the OneOnOne call that uses SFT should be ended. + * For Proteus, the call should be ended if the call has one participant after having 2 in the call. + * For MLS, the call should be ended if the call has two participants and the second participant has lost audio. * * @param conversationId the conversation id. * @param callProtocol the call protocol. @@ -55,7 +56,7 @@ interface MLSCallHelper { /** * Handle the call termination. - * If the call is a one on one call is oneOneOne on SFT, then delete MLS sub conversation + * If the call is oneOneOne on SFT, then delete MLS sub conversation * otherwise leave the MLS conference. * * @param conversationId the conversation id. @@ -68,11 +69,11 @@ interface MLSCallHelper { ) } -class MLSCallHelperImpl( +class CallHelperImpl( private val callRepository: CallRepository, private val subconversationRepository: SubconversationRepository, private val userConfigRepository: UserConfigRepository -) : MLSCallHelper { +) : CallHelper { override fun shouldEndSFTOneOnOneCall( conversationId: ConversationId, @@ -100,12 +101,12 @@ class MLSCallHelperImpl( if (userConfigRepository.shouldUseSFTForOneOnOneCalls().getOrElse(false) && conversationType == Conversation.Type.ONE_ON_ONE ) { - callingLogger.i("[MLSCallHelper] -> fetching remote MLS sub conversation details") + callingLogger.i("[CallHelper] -> fetching remote MLS sub conversation details") subconversationRepository.fetchRemoteSubConversationDetails( conversationId, CALL_SUBCONVERSATION_ID ).onSuccess { subconversationDetails -> - callingLogger.i("[MLSCallHelper] -> Deleting remote MLS sub conversation") + callingLogger.i("[CallHelper] -> Deleting remote MLS sub conversation") subconversationRepository.deleteRemoteSubConversation( subconversationDetails.parentId.toModel(), SubconversationId(subconversationDetails.id), @@ -115,10 +116,10 @@ class MLSCallHelperImpl( ) ) }.onFailure { - callingLogger.e("[MLSCallHelper] -> Error fetching remote MLS sub conversation details") + callingLogger.e("[CallHelper] -> Error fetching remote MLS sub conversation details") } } else { - callingLogger.i("[MLSCallHelper] -> Leaving MLS conference") + callingLogger.i("[CallHelper] -> Leaving MLS conference") callRepository.leaveMlsConference(conversationId) } } diff --git a/logic/src/commonTest/kotlin/com/wire/kalium/logic/data/call/MLSCallHelperTest.kt b/logic/src/commonTest/kotlin/com/wire/kalium/logic/data/call/MLSCallHelperTest.kt index 5482eceb708..2f4119844b7 100644 --- a/logic/src/commonTest/kotlin/com/wire/kalium/logic/data/call/MLSCallHelperTest.kt +++ b/logic/src/commonTest/kotlin/com/wire/kalium/logic/data/call/MLSCallHelperTest.kt @@ -194,7 +194,7 @@ class MLSCallHelperTest { @Mock val userConfigRepository = mock(classOf()) - private val mLSCallHelper: MLSCallHelper = MLSCallHelperImpl( + private val mLSCallHelper: CallHelper = CallHelperImpl( callRepository = callRepository, subconversationRepository = subconversationRepository, userConfigRepository = userConfigRepository diff --git a/logic/src/jvmTest/kotlin/com/wire/kalium/logic/feature/call/scenario/OnCloseCallTest.kt b/logic/src/jvmTest/kotlin/com/wire/kalium/logic/feature/call/scenario/OnCloseCallTest.kt index 48fa46037bc..125e9b601aa 100644 --- a/logic/src/jvmTest/kotlin/com/wire/kalium/logic/feature/call/scenario/OnCloseCallTest.kt +++ b/logic/src/jvmTest/kotlin/com/wire/kalium/logic/feature/call/scenario/OnCloseCallTest.kt @@ -23,11 +23,11 @@ import com.wire.kalium.logic.data.call.CallMetadata import com.wire.kalium.logic.data.call.CallMetadataProfile import com.wire.kalium.logic.data.call.CallRepository import com.wire.kalium.logic.data.call.CallStatus -import com.wire.kalium.logic.data.call.MLSCallHelper import com.wire.kalium.logic.data.conversation.Conversation import com.wire.kalium.logic.data.id.ConversationId import com.wire.kalium.logic.data.id.GroupID import com.wire.kalium.logic.data.id.QualifiedIdMapperImpl +import com.wire.kalium.logic.data.call.CallHelper import com.wire.kalium.logic.data.mls.CipherSuite import com.wire.kalium.logic.framework.TestUser import com.wire.kalium.network.NetworkState @@ -58,7 +58,7 @@ class OnCloseCallTest { val networkStateObserver = mock(NetworkStateObserver::class) @Mock - val mlsCallHelper = mock(classOf()) + val callHelper = mock(classOf()) val qualifiedIdMapper = QualifiedIdMapperImpl(TestUser.SELF.id) @@ -72,7 +72,7 @@ class OnCloseCallTest { fun setUp() { onCloseCall = OnCloseCall( callRepository, - mlsCallHelper, + callHelper, testScope, qualifiedIdMapper, networkStateObserver @@ -316,7 +316,7 @@ class OnCloseCallTest { }.wasInvoked(once) coVerify { - mlsCallHelper.handleCallTermination(eq(conversationId), any()) + callHelper.handleCallTermination(eq(conversationId), any()) }.wasInvoked(once) } diff --git a/logic/src/jvmTest/kotlin/com/wire/kalium/logic/feature/call/scenario/OnParticipantListChangedTest.kt b/logic/src/jvmTest/kotlin/com/wire/kalium/logic/feature/call/scenario/OnParticipantListChangedTest.kt index 659484d8955..3e1f4f15f1d 100644 --- a/logic/src/jvmTest/kotlin/com/wire/kalium/logic/feature/call/scenario/OnParticipantListChangedTest.kt +++ b/logic/src/jvmTest/kotlin/com/wire/kalium/logic/feature/call/scenario/OnParticipantListChangedTest.kt @@ -22,7 +22,7 @@ import com.wire.kalium.logic.configuration.UserConfigRepository import com.wire.kalium.logic.data.call.Call import com.wire.kalium.logic.data.call.CallRepository import com.wire.kalium.logic.data.call.CallStatus -import com.wire.kalium.logic.data.call.MLSCallHelper +import com.wire.kalium.logic.data.call.CallHelper import com.wire.kalium.logic.data.call.Participant import com.wire.kalium.logic.data.call.mapper.ParticipantMapper import com.wire.kalium.logic.data.conversation.Conversation @@ -150,7 +150,7 @@ class OnParticipantListChangedTest { val userRepository = mock(UserRepository::class) @Mock - val mlsCallHelper = mock(MLSCallHelper::class) + val callHelper = mock(CallHelper::class) var isEndCallInvoked = false @@ -161,7 +161,7 @@ class OnParticipantListChangedTest { participantMapper = participantMapper, userConfigRepository = userConfigRepository, userRepository = userRepository, - mlsCallHelper = mlsCallHelper, + callHelper = callHelper, qualifiedIdMapper = qualifiedIdMapper, endCall = { isEndCallInvoked = true @@ -195,7 +195,7 @@ class OnParticipantListChangedTest { fun withShouldEndSFTOneOnOneCall(result: Boolean) = apply { every { - mlsCallHelper.shouldEndSFTOneOnOneCall(any(), any(), any(), any(), any()) + callHelper.shouldEndSFTOneOnOneCall(any(), any(), any(), any(), any()) }.returns(result) }