From 3dffd6b39cbcf854284b60acafc0f47298c36e31 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 21 Dec 2020 17:11:56 +0100 Subject: [PATCH] Fixed issue with call video update dialog --- .../activities/call/fragments/ControlsFragment.kt | 10 ++++++---- .../activities/call/viewmodels/CallViewModel.kt | 2 +- .../activities/call/viewmodels/CallsViewModel.kt | 4 ++-- app/src/main/java/org/linphone/core/CoreContext.kt | 4 +++- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/linphone/activities/call/fragments/ControlsFragment.kt b/app/src/main/java/org/linphone/activities/call/fragments/ControlsFragment.kt index 1a06f8527..8d56d8068 100644 --- a/app/src/main/java/org/linphone/activities/call/fragments/ControlsFragment.kt +++ b/app/src/main/java/org/linphone/activities/call/fragments/ControlsFragment.kt @@ -93,7 +93,9 @@ class ControlsFragment : GenericFragment() { if (call.state == Call.State.StreamsRunning) { dialog?.dismiss() } else if (call.state == Call.State.UpdatedByRemote) { - showCallUpdateDialog(call) + if (call.currentParams.videoEnabled() != call.remoteParams?.videoEnabled()) { + showCallVideoUpdateDialog(call) + } } } }) @@ -219,17 +221,17 @@ class ControlsFragment : GenericFragment() { } } - private fun showCallUpdateDialog(call: Call) { + private fun showCallVideoUpdateDialog(call: Call) { val viewModel = DialogViewModel(AppUtils.getString(R.string.call_video_update_requested_dialog)) dialog = DialogUtils.getDialog(requireContext(), viewModel) viewModel.showCancelButton({ - callsViewModel.answerCallUpdateRequest(call, false) + callsViewModel.answerCallVideoUpdateRequest(call, false) dialog?.dismiss() }, getString(R.string.dialog_decline)) viewModel.showOkButton({ - callsViewModel.answerCallUpdateRequest(call, true) + callsViewModel.answerCallVideoUpdateRequest(call, true) dialog?.dismiss() }, getString(R.string.dialog_accept)) diff --git a/app/src/main/java/org/linphone/activities/call/viewmodels/CallViewModel.kt b/app/src/main/java/org/linphone/activities/call/viewmodels/CallViewModel.kt index 737d7271f..27f0043a7 100644 --- a/app/src/main/java/org/linphone/activities/call/viewmodels/CallViewModel.kt +++ b/app/src/main/java/org/linphone/activities/call/viewmodels/CallViewModel.kt @@ -129,7 +129,7 @@ open class CallViewModel(val call: Call) : GenericContactViewModel(call.remoteAd // Decline call update viewModelScope.launch { withContext(Dispatchers.Main) { - coreContext.answerCallUpdateRequest(call, false) + coreContext.answerCallVideoUpdateRequest(call, false) } } } diff --git a/app/src/main/java/org/linphone/activities/call/viewmodels/CallsViewModel.kt b/app/src/main/java/org/linphone/activities/call/viewmodels/CallsViewModel.kt index ed844adf5..5c4d8de6d 100644 --- a/app/src/main/java/org/linphone/activities/call/viewmodels/CallsViewModel.kt +++ b/app/src/main/java/org/linphone/activities/call/viewmodels/CallsViewModel.kt @@ -128,8 +128,8 @@ class CallsViewModel : ViewModel() { super.onCleared() } - fun answerCallUpdateRequest(call: Call, accept: Boolean) { - coreContext.answerCallUpdateRequest(call, accept) + fun answerCallVideoUpdateRequest(call: Call, accept: Boolean) { + coreContext.answerCallVideoUpdateRequest(call, accept) } fun pauseConference() { diff --git a/app/src/main/java/org/linphone/core/CoreContext.kt b/app/src/main/java/org/linphone/core/CoreContext.kt index ef5b18a0f..5dcee217a 100644 --- a/app/src/main/java/org/linphone/core/CoreContext.kt +++ b/app/src/main/java/org/linphone/core/CoreContext.kt @@ -313,13 +313,15 @@ class CoreContext(val context: Context, coreConfig: Config) { /* Call related functions */ - fun answerCallUpdateRequest(call: Call, accept: Boolean) { + fun answerCallVideoUpdateRequest(call: Call, accept: Boolean) { val params = core.createCallParams(call) if (accept) { params?.enableVideo(true) core.enableVideoCapture(true) core.enableVideoDisplay(true) + } else { + params?.enableVideo(false) } call.acceptUpdate(params)