From e83afdf43690044a8e8a0c90c7ba410db51385bc Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 23 May 2024 13:55:05 +0200 Subject: [PATCH] Update meeting details after successfull edit --- .../main/chat/viewmodel/ConversationViewModel.kt | 6 ------ .../main/meetings/fragment/EditMeetingFragment.kt | 1 + .../ui/main/meetings/fragment/MeetingFragment.kt | 7 +++++++ .../main/meetings/viewmodel/MeetingViewModel.kt | 15 +++++++++++++++ .../ui/main/viewmodel/SharedMainViewModel.kt | 4 ++++ 5 files changed, 27 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationViewModel.kt b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationViewModel.kt index e22aad72f..4183c367d 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationViewModel.kt @@ -165,12 +165,6 @@ class ConversationViewModel @UiThread constructor() : AbstractConversationViewMo addEvents(arrayOf(eventLog)) } - @WorkerThread - override fun onChatMessageSent(chatRoom: ChatRoom, eventLog: EventLog) { - val message = eventLog.chatMessage - Log.i("$TAG Message [$message] has been sent") - } - @WorkerThread override fun onChatMessagesReceived(chatRoom: ChatRoom, eventLogs: Array) { Log.i("$TAG Received [${eventLogs.size}] new message(s)") diff --git a/app/src/main/java/org/linphone/ui/main/meetings/fragment/EditMeetingFragment.kt b/app/src/main/java/org/linphone/ui/main/meetings/fragment/EditMeetingFragment.kt index bc848a67d..74593d171 100644 --- a/app/src/main/java/org/linphone/ui/main/meetings/fragment/EditMeetingFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/meetings/fragment/EditMeetingFragment.kt @@ -181,6 +181,7 @@ class EditMeetingFragment : SlidingPaneChildFragment() { getString(R.string.meeting_info_updated_toast), R.drawable.check ) + sharedViewModel.meetingEditedEvent.value = Event(true) sharedViewModel.forceRefreshMeetingsListEvent.value = Event(true) goBack() } diff --git a/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingFragment.kt b/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingFragment.kt index eb81acb16..7ff94983d 100644 --- a/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingFragment.kt @@ -151,6 +151,13 @@ class MeetingFragment : SlidingPaneChildFragment() { viewModel.showBackButton.value = slideable } + sharedViewModel.meetingEditedEvent.observe(viewLifecycleOwner) { + it.consume { + Log.i("$TAG Meeting with URI [$uri] has been edited, reloading info") + viewModel.refreshInfo(uri) + } + } + viewModel.conferenceInfoFoundEvent.observe(viewLifecycleOwner) { it.consume { found -> if (found) { diff --git a/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingViewModel.kt b/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingViewModel.kt index 80f225036..02ec96c92 100644 --- a/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingViewModel.kt @@ -192,6 +192,21 @@ class MeetingViewModel @UiThread constructor() : GenericViewModel() { } } + @UiThread + fun refreshInfo(uri: String) { + coreContext.postOnCoreThread { core -> + val address = Factory.instance().createAddress(uri) + if (address != null) { + val found = core.findConferenceInformationFromUri(address) + if (found != null) { + Log.i("$TAG Conference info with SIP URI [$uri] was found, updating info") + conferenceInfo = found + configureConferenceInfo() + } + } + } + } + @WorkerThread private fun configureConferenceInfo() { if (::conferenceInfo.isInitialized) { diff --git a/app/src/main/java/org/linphone/ui/main/viewmodel/SharedMainViewModel.kt b/app/src/main/java/org/linphone/ui/main/viewmodel/SharedMainViewModel.kt index 4be75b3b2..a6467733f 100644 --- a/app/src/main/java/org/linphone/ui/main/viewmodel/SharedMainViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/viewmodel/SharedMainViewModel.kt @@ -144,6 +144,10 @@ class SharedMainViewModel @UiThread constructor() : ViewModel() { var displayedMeeting: ConferenceInfo? = null // Prevents the need to go look for the conference info + val meetingEditedEvent: MutableLiveData> by lazy { + MutableLiveData>() + } + val forceRefreshMeetingsListEvent: MutableLiveData> by lazy { MutableLiveData>() }