From ce2b794936d4d6beb426c7bbae780d441d773cbc Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 22 Oct 2025 10:02:28 +0200 Subject: [PATCH] Fixed conversation avatar not updated when subject changes --- .../org/linphone/ui/main/chat/model/ConversationModel.kt | 3 ++- .../ui/main/chat/viewmodel/ConversationInfoViewModel.kt | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/linphone/ui/main/chat/model/ConversationModel.kt b/app/src/main/java/org/linphone/ui/main/chat/model/ConversationModel.kt index 60b6d323c..6e6a56c45 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/model/ConversationModel.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/model/ConversationModel.kt @@ -158,6 +158,7 @@ class ConversationModel override fun onSubjectChanged(chatRoom: ChatRoom, eventLog: EventLog) { Log.i("$TAG Conversation subject changed [${chatRoom.subject}]") subject.postValue(chatRoom.subject) + computeParticipants() } @WorkerThread @@ -431,7 +432,7 @@ class ConversationModel } if (isGroup) { - if (avatarModel.value == null) { + if (avatarModel.value == null || avatarModel.value?.contactName != chatRoom.subject) { val fakeFriend = coreContext.core.createFriend() fakeFriend.name = chatRoom.subject val model = ContactAvatarModel(fakeFriend) diff --git a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationInfoViewModel.kt b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationInfoViewModel.kt index dedac0fd2..4ac6aadd0 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationInfoViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationInfoViewModel.kt @@ -159,6 +159,7 @@ class ConversationInfoViewModel showGreenToast(R.string.conversation_subject_changed_toast, R.drawable.check) subject.postValue(chatRoom.subject) + computeParticipantsList() infoChangedEvent.postValue(Event(true)) } @@ -562,7 +563,9 @@ class ConversationInfoViewModel } else { participantsList.first().avatarModel } - avatarModel.postValue(avatar) + if (!avatar.compare(avatarModel.value)) { + avatarModel.postValue(avatar) + } participants.postValue(participantsList) participantsLabel.postValue(