From 940937a9b7507a3e74250f2876a692ebcc0fd173 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 14 Feb 2024 10:16:29 +0100 Subject: [PATCH] Fixed broken media viewer --- .../chat/viewmodel/ConversationDocumentsListViewModel.kt | 8 ++++++++ .../main/chat/viewmodel/ConversationMediaListViewModel.kt | 8 ++++++++ .../file_media_viewer/fragment/MediaListViewerFragment.kt | 7 ++++++- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationDocumentsListViewModel.kt b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationDocumentsListViewModel.kt index ee079c940..81e7dd41e 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationDocumentsListViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationDocumentsListViewModel.kt @@ -28,6 +28,7 @@ import org.linphone.core.Factory import org.linphone.core.tools.Log import org.linphone.ui.main.chat.model.FileModel import org.linphone.utils.Event +import org.linphone.utils.LinphoneUtils class ConversationDocumentsListViewModel @UiThread constructor() : ViewModel() { companion object { @@ -107,7 +108,13 @@ class ConversationDocumentsListViewModel @UiThread constructor() : ViewModel() { coreContext.postOnCoreThread { val list = arrayListOf() if (::chatRoom.isInitialized) { + Log.i( + "$TAG Loading document contents for conversation [${LinphoneUtils.getChatRoomId( + chatRoom + )}]" + ) val documents = chatRoom.documentContents + Log.i("$TAG [${documents.size}] documents have been fetched") for (documentContent in documents) { val path = documentContent.filePath.orEmpty() val name = documentContent.name.orEmpty() @@ -119,6 +126,7 @@ class ConversationDocumentsListViewModel @UiThread constructor() : ViewModel() { list.add(model) } } + Log.i("$TAG [${documents.size}] documents have been processed") } documentsList.postValue(list) diff --git a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationMediaListViewModel.kt b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationMediaListViewModel.kt index 6ab9f7809..6cbbc91ee 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationMediaListViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationMediaListViewModel.kt @@ -28,6 +28,7 @@ import org.linphone.core.Factory import org.linphone.core.tools.Log import org.linphone.ui.main.chat.model.FileModel import org.linphone.utils.Event +import org.linphone.utils.LinphoneUtils class ConversationMediaListViewModel @UiThread constructor() : ViewModel() { companion object { @@ -111,7 +112,13 @@ class ConversationMediaListViewModel @UiThread constructor() : ViewModel() { coreContext.postOnCoreThread { val list = arrayListOf() if (::chatRoom.isInitialized) { + Log.i( + "$TAG Loading media contents for conversation [${LinphoneUtils.getChatRoomId( + chatRoom + )}]" + ) val media = chatRoom.mediaContents + Log.i("$TAG [${media.size}] media have been fetched") for (mediaContent in media) { val path = mediaContent.filePath.orEmpty() val name = mediaContent.name.orEmpty() @@ -123,6 +130,7 @@ class ConversationMediaListViewModel @UiThread constructor() : ViewModel() { list.add(model) } } + Log.i("$TAG [${media.size}] media have been processed") } mediaList.postValue(list) diff --git a/app/src/main/java/org/linphone/ui/main/file_media_viewer/fragment/MediaListViewerFragment.kt b/app/src/main/java/org/linphone/ui/main/file_media_viewer/fragment/MediaListViewerFragment.kt index 373d995cf..25dbfeeb4 100644 --- a/app/src/main/java/org/linphone/ui/main/file_media_viewer/fragment/MediaListViewerFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/file_media_viewer/fragment/MediaListViewerFragment.kt @@ -102,12 +102,17 @@ class MediaListViewerFragment : GenericFragment() { val chatRoom = sharedViewModel.displayedChatRoom viewModel.findChatRoom(chatRoom, localSipUri, remoteSipUri) + viewModel.chatRoomFoundEvent.observe(viewLifecycleOwner) { + it.consume { + viewModel.loadMediaList() + } + } + viewModel.mediaList.observe(viewLifecycleOwner) { val count = it.size Log.i( "$TAG Found [$count] media for conversation with local SIP URI [$localSipUri] and remote SIP URI [$remoteSipUri]" ) - adapter = MediaListAdapter(this, viewModel) viewPager = binding.mediaViewPager viewPager.adapter = adapter