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 {
|
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 {
|
private fun isCallPaused(): Boolean {
|
||||||
|
@ -238,7 +238,7 @@ open class CallData(val call: Call) : GenericContactData(call.remoteAddress) {
|
||||||
|
|
||||||
private fun updateConferenceInfo() {
|
private fun updateConferenceInfo() {
|
||||||
val conference = call.conference
|
val conference = call.conference
|
||||||
isInRemoteConference.value = conference != null
|
isInRemoteConference.value = conference != null && conference.call != null
|
||||||
if (conference != null) {
|
if (conference != null) {
|
||||||
Log.d("[Call] Found conference attached to call")
|
Log.d("[Call] Found conference attached to call")
|
||||||
remoteConferenceSubject.value = LinphoneUtils.getConferenceSubject(conference)
|
remoteConferenceSubject.value = LinphoneUtils.getConferenceSubject(conference)
|
||||||
|
|
|
@ -377,7 +377,7 @@ class ConferenceViewModel : ViewModel() {
|
||||||
moreThanTwoParticipantsJoinedEvent.value = Event(true)
|
moreThanTwoParticipantsJoinedEvent.value = Event(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
isConferenceLocallyPaused.value = !conference.isIn
|
isConferenceLocallyPaused.value = if (conference.call == null) false else !conference.isIn
|
||||||
isMeAdmin.value = conference.me.isAdmin
|
isMeAdmin.value = conference.me.isAdmin
|
||||||
isVideoConference.value = conference.currentParams.isVideoEnabled && !corePreferences.disableVideo
|
isVideoConference.value = conference.currentParams.isVideoEnabled && !corePreferences.disableVideo
|
||||||
subject.value = LinphoneUtils.getConferenceSubject(conference)
|
subject.value = LinphoneUtils.getConferenceSubject(conference)
|
||||||
|
@ -459,18 +459,21 @@ class ConferenceViewModel : ViewModel() {
|
||||||
|
|
||||||
private fun updateConferenceLayout(conference: Conference) {
|
private fun updateConferenceLayout(conference: Conference) {
|
||||||
val call = conference.call
|
val call = conference.call
|
||||||
if (call == null) {
|
var videoDirection = MediaDirection.Inactive
|
||||||
Log.e("[Conference] Call is null!")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
val params = call.params
|
if (call == null) {
|
||||||
conferenceDisplayMode.value = if (!params.isVideoEnabled) {
|
conferenceDisplayMode.value = ConferenceDisplayMode.AUDIO_ONLY
|
||||||
ConferenceDisplayMode.AUDIO_ONLY
|
Log.w("[Conference] Call is null, assuming audio only layout for local conference")
|
||||||
} else {
|
} else {
|
||||||
when (params.conferenceVideoLayout) {
|
val params = call.params
|
||||||
Conference.Layout.Grid -> ConferenceDisplayMode.GRID
|
videoDirection = params.videoDirection
|
||||||
else -> ConferenceDisplayMode.ACTIVE_SPEAKER
|
conferenceDisplayMode.value = if (!params.isVideoEnabled) {
|
||||||
|
ConferenceDisplayMode.AUDIO_ONLY
|
||||||
|
} else {
|
||||||
|
when (params.conferenceVideoLayout) {
|
||||||
|
Conference.Layout.Grid -> ConferenceDisplayMode.GRID
|
||||||
|
else -> ConferenceDisplayMode.ACTIVE_SPEAKER
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -478,7 +481,7 @@ class ConferenceViewModel : ViewModel() {
|
||||||
conferenceParticipantDevices.value = list
|
conferenceParticipantDevices.value = list
|
||||||
|
|
||||||
Log.i(
|
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