Fixed operation in progress infinit spinner when scheduling a conf without sending invitation by chat
This commit is contained in:
parent
50178d40de
commit
ed009c9e39
1 changed files with 19 additions and 32 deletions
|
@ -89,13 +89,26 @@ class ConferenceSchedulingViewModel : ContactsSelectionViewModel() {
|
||||||
|
|
||||||
address.value = conferenceAddress!!
|
address.value = conferenceAddress!!
|
||||||
|
|
||||||
if (scheduleForLater.value == true && sendInviteViaChat.value == true) {
|
if (scheduleForLater.value == true) {
|
||||||
|
if (sendInviteViaChat.value == true) {
|
||||||
// Send conference info even when conf is not scheduled for later
|
// Send conference info even when conf is not scheduled for later
|
||||||
// as the conference server doesn't invite participants automatically
|
// as the conference server doesn't invite participants automatically
|
||||||
|
Log.i(
|
||||||
|
"[Conference Creation] Scheduled conference is ready, sending invitations by chat"
|
||||||
|
)
|
||||||
val chatRoomParams = LinphoneUtils.getConferenceInvitationsChatRoomParams()
|
val chatRoomParams = LinphoneUtils.getConferenceInvitationsChatRoomParams()
|
||||||
conferenceScheduler.sendInvitations(chatRoomParams)
|
conferenceScheduler.sendInvitations(chatRoomParams)
|
||||||
} else {
|
} else {
|
||||||
// Will be done in coreListener
|
Log.i(
|
||||||
|
"[Conference Creation] Scheduled conference is ready, we were asked not to send invitations by chat so leaving fragment"
|
||||||
|
)
|
||||||
|
conferenceCreationInProgress.value = false
|
||||||
|
conferenceCreationCompletedEvent.value = Event(true)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Log.i("[Conference Creation] Group call is ready, leaving fragment")
|
||||||
|
conferenceCreationInProgress.value = false
|
||||||
|
conferenceCreationCompletedEvent.value = Event(true)
|
||||||
}
|
}
|
||||||
} else if (state == ConferenceScheduler.State.Error) {
|
} else if (state == ConferenceScheduler.State.Error) {
|
||||||
Log.e("[Conference Creation] Failed to create conference!")
|
Log.e("[Conference Creation] Failed to create conference!")
|
||||||
|
@ -134,30 +147,6 @@ class ConferenceSchedulingViewModel : ContactsSelectionViewModel() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val coreListener: CoreListenerStub = object : CoreListenerStub() {
|
|
||||||
override fun onCallStateChanged(
|
|
||||||
core: Core,
|
|
||||||
call: Call,
|
|
||||||
state: Call.State?,
|
|
||||||
message: String
|
|
||||||
) {
|
|
||||||
when (state) {
|
|
||||||
Call.State.OutgoingProgress -> {
|
|
||||||
conferenceCreationInProgress.value = false
|
|
||||||
}
|
|
||||||
Call.State.End -> {
|
|
||||||
Log.i("[Conference Creation] Call has ended, leaving waiting room fragment")
|
|
||||||
conferenceCreationCompletedEvent.value = Event(true)
|
|
||||||
}
|
|
||||||
Call.State.Error -> {
|
|
||||||
Log.w("[Conference Creation] Call has failed, leaving waiting room fragment")
|
|
||||||
conferenceCreationCompletedEvent.value = Event(true)
|
|
||||||
}
|
|
||||||
else -> {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
init {
|
init {
|
||||||
sipContactsSelected.value = true
|
sipContactsSelected.value = true
|
||||||
|
|
||||||
|
@ -191,11 +180,9 @@ class ConferenceSchedulingViewModel : ContactsSelectionViewModel() {
|
||||||
}
|
}
|
||||||
|
|
||||||
conferenceScheduler.addListener(listener)
|
conferenceScheduler.addListener(listener)
|
||||||
coreContext.core.addListener(coreListener)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCleared() {
|
override fun onCleared() {
|
||||||
coreContext.core.removeListener(coreListener)
|
|
||||||
conferenceScheduler.removeListener(listener)
|
conferenceScheduler.removeListener(listener)
|
||||||
participantsData.value.orEmpty().forEach(ConferenceSchedulingParticipantData::destroy)
|
participantsData.value.orEmpty().forEach(ConferenceSchedulingParticipantData::destroy)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue