diff --git a/.gitignore b/.gitignore
index f7247d082..d5f70d215 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,14 +1,6 @@
*.iml
.gradle
/local.properties
-/.idea/caches
-/.idea/libraries
-/.idea/modules.xml
-/.idea/workspace.xml
-/.idea/navEditor.xml
-/.idea/assetWizardSettings.xml
-.idea/deploymentTargetDropDown.xml
-.idea/deploymentTargetSelector.xml
.DS_Store
/build
/captures
diff --git a/.idea/other.xml b/.idea/other.xml
deleted file mode 100644
index 0d3a1fbb1..000000000
--- a/.idea/other.xml
+++ /dev/null
@@ -1,263 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/java/org/linphone/ui/main/chat/model/EventLogModel.kt b/app/src/main/java/org/linphone/ui/main/chat/model/EventLogModel.kt
index debac6393..b0ca39f3b 100644
--- a/app/src/main/java/org/linphone/ui/main/chat/model/EventLogModel.kt
+++ b/app/src/main/java/org/linphone/ui/main/chat/model/EventLogModel.kt
@@ -23,12 +23,10 @@ import androidx.annotation.WorkerThread
import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.core.EventLog
import org.linphone.core.tools.Log
-import org.linphone.ui.main.contacts.model.ContactAvatarModel
import org.linphone.utils.LinphoneUtils
class EventLogModel @WorkerThread constructor(
val eventLog: EventLog,
- val avatarModel: ContactAvatarModel,
isFromGroup: Boolean = false,
isGroupedWithPreviousOne: Boolean = false,
isGroupedWithNextOne: Boolean = false,
@@ -74,7 +72,6 @@ class EventLogModel @WorkerThread constructor(
MessageModel(
chatMessage,
- avatarModel,
isFromGroup,
isReply,
replyTo,
diff --git a/app/src/main/java/org/linphone/ui/main/chat/model/MessageModel.kt b/app/src/main/java/org/linphone/ui/main/chat/model/MessageModel.kt
index dac228528..71d193daf 100644
--- a/app/src/main/java/org/linphone/ui/main/chat/model/MessageModel.kt
+++ b/app/src/main/java/org/linphone/ui/main/chat/model/MessageModel.kt
@@ -67,7 +67,6 @@ import org.linphone.utils.TimestampUtils
class MessageModel @WorkerThread constructor(
val chatMessage: ChatMessage,
- val avatarModel: ContactAvatarModel,
val isFromGroup: Boolean,
val isReply: Boolean,
val replyTo: String,
@@ -106,6 +105,8 @@ class MessageModel @WorkerThread constructor(
val chatRoomIsReadOnly = chatMessage.chatRoom.isReadOnly ||
(!chatMessage.chatRoom.hasCapability(ChatRoom.Capabilities.Encrypted.toInt()) && isEndToEndEncryptionMandatory())
+ val avatarModel = MutableLiveData()
+
val groupedWithNextMessage = MutableLiveData()
val groupedWithPreviousMessage = MutableLiveData()
@@ -257,6 +258,8 @@ class MessageModel @WorkerThread constructor(
}
init {
+ updateAvatarModel()
+
groupedWithNextMessage.postValue(isGroupedWithNextOne)
groupedWithPreviousMessage.postValue(isGroupedWithPreviousOne)
isPlayingVoiceRecord.postValue(false)
@@ -337,6 +340,14 @@ class MessageModel @WorkerThread constructor(
}
}
+ @WorkerThread
+ fun updateAvatarModel() {
+ val avatar = coreContext.contactsManager.getContactAvatarModelForAddress(
+ chatMessage.fromAddress
+ )
+ avatarModel.postValue(avatar)
+ }
+
@WorkerThread
private fun computeContentsList() {
Log.d("$TAG Computing message contents list")
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 1c2a99be8..1451839dc 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
@@ -320,6 +320,12 @@ class ConversationViewModel @UiThread constructor() : AbstractConversationViewMo
override fun onContactsLoaded() {
Log.i("$TAG Contacts have been (re)loaded, updating list")
computeParticipantsInfo()
+
+ if (isGroup.value == true) {
+ for (event in eventsList) {
+ (event.model as? MessageModel)?.updateAvatarModel()
+ }
+ }
}
}
@@ -724,12 +730,8 @@ class ConversationViewModel @UiThread constructor() : AbstractConversationViewMo
var index = 0
for (groupedEvent in groupedEventLogs) {
- val avatar = coreContext.contactsManager.getContactAvatarModelForAddress(
- groupedEvent.chatMessage?.fromAddress
- )
val model = EventLogModel(
groupedEvent,
- avatar,
groupChatRoom,
index > 0,
index != groupedEventLogs.size - 1,
diff --git a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/SendMessageInConversationViewModel.kt b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/SendMessageInConversationViewModel.kt
index 956620968..687c43626 100644
--- a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/SendMessageInConversationViewModel.kt
+++ b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/SendMessageInConversationViewModel.kt
@@ -210,7 +210,7 @@ class SendMessageInConversationViewModel @UiThread constructor() : GenericViewMo
val message = model.chatMessage
Log.i("$TAG Pending reply to message [${message.messageId}]")
chatMessageToReplyTo = message
- isReplyingTo.postValue(model.avatarModel.friend.name)
+ isReplyingTo.postValue(model.avatarModel.value?.friend?.name)
isReplyingToMessage.postValue(LinphoneUtils.getTextDescribingMessage(message))
isReplying.postValue(true)
}