Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: cleanup MLSCallHelper class (WPB-7153) - cherrypick RC #2957

Merged
merged 3 commits into from
Aug 19, 2024
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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.
Expand All @@ -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,
Expand Down Expand Up @@ -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),
Expand All @@ -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)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ class MLSCallHelperTest {
@Mock
val userConfigRepository = mock(classOf<UserConfigRepository>())

private val mLSCallHelper: MLSCallHelper = MLSCallHelperImpl(
private val mLSCallHelper: CallHelper = CallHelperImpl(
callRepository = callRepository,
subconversationRepository = subconversationRepository,
userConfigRepository = userConfigRepository
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,12 @@ 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.CallStatus
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
Expand Down Expand Up @@ -58,7 +59,7 @@ class OnCloseCallTest {
val networkStateObserver = mock(NetworkStateObserver::class)

@Mock
val mlsCallHelper = mock(classOf<MLSCallHelper>())
val callHelper = mock(classOf<CallHelper>())

val qualifiedIdMapper = QualifiedIdMapperImpl(TestUser.SELF.id)

Expand All @@ -72,7 +73,7 @@ class OnCloseCallTest {
fun setUp() {
onCloseCall = OnCloseCall(
callRepository,
mlsCallHelper,
callHelper,
testScope,
qualifiedIdMapper,
networkStateObserver
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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

Expand All @@ -161,7 +161,7 @@ class OnParticipantListChangedTest {
participantMapper = participantMapper,
userConfigRepository = userConfigRepository,
userRepository = userRepository,
mlsCallHelper = mlsCallHelper,
callHelper = callHelper,
qualifiedIdMapper = qualifiedIdMapper,
endCall = {
isEndCallInvoked = true
Expand Down
Loading