From 0ce885a260abcda52a25f186fee08a5bf41d06aa Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 8 Jun 2022 09:32:11 +0200 Subject: [PATCH] Prevent 'Remote Conference' default subject from being visible when joining a conference, using real one instead --- .../linphone/activities/voip/data/CallData.kt | 11 +---------- .../voip/viewmodels/ConferenceViewModel.kt | 11 ++--------- .../java/org/linphone/utils/LinphoneUtils.kt | 17 +++++++++++++++++ 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/org/linphone/activities/voip/data/CallData.kt b/app/src/main/java/org/linphone/activities/voip/data/CallData.kt index 63aa54bd2..65fde45ad 100644 --- a/app/src/main/java/org/linphone/activities/voip/data/CallData.kt +++ b/app/src/main/java/org/linphone/activities/voip/data/CallData.kt @@ -30,7 +30,6 @@ import org.linphone.compatibility.Compatibility import org.linphone.contact.GenericContactData import org.linphone.core.* import org.linphone.core.tools.Log -import org.linphone.utils.AppUtils import org.linphone.utils.LinphoneUtils open class CallData(val call: Call) : GenericContactData(call.remoteAddress) { @@ -232,15 +231,7 @@ open class CallData(val call: Call) : GenericContactData(call.remoteAddress) { isInRemoteConference.value = conference != null if (conference != null) { Log.d("[Call] Found conference attached to call") - remoteConferenceSubject.value = if (conference.subject.isNullOrEmpty()) { - if (conference.me.isFocus) { - AppUtils.getString(R.string.conference_local_title) - } else { - AppUtils.getString(R.string.conference_default_title) - } - } else { - conference.subject - } + remoteConferenceSubject.value = LinphoneUtils.getConferenceSubject(conference) Log.d("[Call] Found conference related to this call with subject [${remoteConferenceSubject.value}]") val participantsList = arrayListOf() diff --git a/app/src/main/java/org/linphone/activities/voip/viewmodels/ConferenceViewModel.kt b/app/src/main/java/org/linphone/activities/voip/viewmodels/ConferenceViewModel.kt index 6cff3c92b..de476e654 100644 --- a/app/src/main/java/org/linphone/activities/voip/viewmodels/ConferenceViewModel.kt +++ b/app/src/main/java/org/linphone/activities/voip/viewmodels/ConferenceViewModel.kt @@ -264,6 +264,7 @@ class ConferenceViewModel : ViewModel() { conference.addListener(conferenceListener) isRecording.value = conference.isRecording + subject.value = LinphoneUtils.getConferenceSubject(conference) updateConferenceLayout(conference) } @@ -278,15 +279,7 @@ class ConferenceViewModel : ViewModel() { isConferenceLocallyPaused.value = !conference.isIn isMeAdmin.value = conference.me.isAdmin isVideoConference.value = conference.currentParams.isVideoEnabled - subject.value = if (conference.subject.isNullOrEmpty()) { - if (conference.me.isFocus) { - AppUtils.getString(R.string.conference_local_title) - } else { - AppUtils.getString(R.string.conference_default_title) - } - } else { - conference.subject - } + subject.value = LinphoneUtils.getConferenceSubject(conference) updateConferenceLayout(conference) } diff --git a/app/src/main/java/org/linphone/utils/LinphoneUtils.kt b/app/src/main/java/org/linphone/utils/LinphoneUtils.kt index 276acbc5b..c1cfc2ef3 100644 --- a/app/src/main/java/org/linphone/utils/LinphoneUtils.kt +++ b/app/src/main/java/org/linphone/utils/LinphoneUtils.kt @@ -87,6 +87,23 @@ class LinphoneUtils { return conferenceAddress } + fun getConferenceSubject(conference: Conference): String? { + return if (conference.subject.isNullOrEmpty()) { + val conferenceInfo = coreContext.core.findConferenceInformationFromUri(conference.conferenceAddress) + if (conferenceInfo != null) { + conferenceInfo.subject + } else { + if (conference.me.isFocus) { + AppUtils.getString(R.string.conference_local_title) + } else { + AppUtils.getString(R.string.conference_default_title) + } + } + } else { + conference.subject + } + } + fun isLimeAvailable(): Boolean { val core = coreContext.core return core.limeX3DhAvailable() && core.isLimeX3DhEnabled &&