Fixed merging calls into local conference
This commit is contained in:
parent
de2ee00957
commit
4da3c2f6fc
2 changed files with 17 additions and 14 deletions
|
@ -176,7 +176,7 @@ open class CallData(val call: Call) : GenericContactData(call.remoteAddress) {
|
|||
}
|
||||
|
||||
fun isActiveAndNotInConference(): Boolean {
|
||||
return isPaused.value == false && isRemotelyPaused.value == false && isInRemoteConference.value == false
|
||||
return isPaused.value == false && isRemotelyPaused.value == false && call.conference?.call != null && isInRemoteConference.value == false
|
||||
}
|
||||
|
||||
private fun isCallPaused(): Boolean {
|
||||
|
@ -238,7 +238,7 @@ open class CallData(val call: Call) : GenericContactData(call.remoteAddress) {
|
|||
|
||||
private fun updateConferenceInfo() {
|
||||
val conference = call.conference
|
||||
isInRemoteConference.value = conference != null
|
||||
isInRemoteConference.value = conference != null && conference.call != null
|
||||
if (conference != null) {
|
||||
Log.d("[Call] Found conference attached to call")
|
||||
remoteConferenceSubject.value = LinphoneUtils.getConferenceSubject(conference)
|
||||
|
|
|
@ -377,7 +377,7 @@ class ConferenceViewModel : ViewModel() {
|
|||
moreThanTwoParticipantsJoinedEvent.value = Event(true)
|
||||
}
|
||||
|
||||
isConferenceLocallyPaused.value = !conference.isIn
|
||||
isConferenceLocallyPaused.value = if (conference.call == null) false else !conference.isIn
|
||||
isMeAdmin.value = conference.me.isAdmin
|
||||
isVideoConference.value = conference.currentParams.isVideoEnabled && !corePreferences.disableVideo
|
||||
subject.value = LinphoneUtils.getConferenceSubject(conference)
|
||||
|
@ -459,12 +459,14 @@ class ConferenceViewModel : ViewModel() {
|
|||
|
||||
private fun updateConferenceLayout(conference: Conference) {
|
||||
val call = conference.call
|
||||
if (call == null) {
|
||||
Log.e("[Conference] Call is null!")
|
||||
return
|
||||
}
|
||||
var videoDirection = MediaDirection.Inactive
|
||||
|
||||
if (call == null) {
|
||||
conferenceDisplayMode.value = ConferenceDisplayMode.AUDIO_ONLY
|
||||
Log.w("[Conference] Call is null, assuming audio only layout for local conference")
|
||||
} else {
|
||||
val params = call.params
|
||||
videoDirection = params.videoDirection
|
||||
conferenceDisplayMode.value = if (!params.isVideoEnabled) {
|
||||
ConferenceDisplayMode.AUDIO_ONLY
|
||||
} else {
|
||||
|
@ -473,12 +475,13 @@ class ConferenceViewModel : ViewModel() {
|
|||
else -> ConferenceDisplayMode.ACTIVE_SPEAKER
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val list = sortDevicesDataList(conferenceParticipantDevices.value.orEmpty())
|
||||
conferenceParticipantDevices.value = list
|
||||
|
||||
Log.i(
|
||||
"[Conference] Current layout is [${conferenceDisplayMode.value}], video direction is [${params.videoDirection}]"
|
||||
"[Conference] Current layout is [${conferenceDisplayMode.value}], video direction is [$videoDirection]"
|
||||
)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue