diff --git a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationFragment.kt b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationFragment.kt index 8be430652..26f376157 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationFragment.kt @@ -621,6 +621,15 @@ class ConversationFragment : SlidingPaneChildFragment() { } } + viewModel.messageDeletedEvent.observe(viewLifecycleOwner) { + it.consume { + val message = getString(R.string.conversation_message_deleted_toast) + val icon = R.drawable.x + (requireActivity() as MainActivity).showGreenToast(message, icon) + sharedViewModel.forceRefreshConversations.value = Event(true) + } + } + sharedViewModel.richContentUri.observe( viewLifecycleOwner ) { diff --git a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationsListFragment.kt b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationsListFragment.kt index 4e001a898..ee1abc1f7 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationsListFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationsListFragment.kt @@ -278,6 +278,12 @@ class ConversationsListFragment : AbstractTopBarFragment() { } } + sharedViewModel.forceRefreshConversations.observe(viewLifecycleOwner) { + it.consume { + listViewModel.filter() + } + } + // TopBarFragment related setViewModelAndTitle( 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 fa5a6e3de..c858f58bc 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 @@ -113,6 +113,10 @@ class ConversationViewModel @UiThread constructor() : AbstractConversationViewMo MutableLiveData>>() } + val messageDeletedEvent: MutableLiveData> by lazy { + MutableLiveData>() + } + private var eventsList = arrayListOf() private val chatRoomListener = object : ChatRoomListenerStub() { @@ -370,6 +374,7 @@ class ConversationViewModel @UiThread constructor() : AbstractConversationViewMo Log.i("$TAG Deleting message id [${chatMessageModel.id}]") chatRoom.deleteMessage(chatMessageModel.chatMessage) + messageDeletedEvent.postValue(Event(true)) } } 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 7dbf89af4..9be6c3cb6 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 @@ -117,6 +117,10 @@ class SharedMainViewModel @UiThread constructor() : ViewModel() { MutableLiveData>() } + val forceRefreshConversations: MutableLiveData> by lazy { + MutableLiveData>() + } + val forceRefreshConversationInfo: MutableLiveData> by lazy { MutableLiveData>() } diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 54a6ae6a8..013dc7aca 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -412,6 +412,7 @@ Renommer la conversation Nom de la conversation Confirmer + Le message a été supprimé Membres du groupe Ajouter des membres @@ -582,7 +583,9 @@ Passer - invitation à une réunion: %s + invitation à une réunion : %s + réunion mise à jour : %s + réunion annulée : %s message vocal Contact is trusted diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7874ea720..39530870e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -460,6 +460,7 @@ Edit conversation subject Conversation subject Confirm + Message has been deleted Group members Add participants @@ -637,6 +638,8 @@ meeting invite: %s + meeting updated: %s + meeting cancelled: %s voice message