diff --git a/app/src/main/java/org/linphone/ui/main/chat/model/ChatMessageModel.kt b/app/src/main/java/org/linphone/ui/main/chat/model/ChatMessageModel.kt
index dd8151e3d..fd0b3ab71 100644
--- a/app/src/main/java/org/linphone/ui/main/chat/model/ChatMessageModel.kt
+++ b/app/src/main/java/org/linphone/ui/main/chat/model/ChatMessageModel.kt
@@ -37,6 +37,8 @@ class ChatMessageModel @WorkerThread constructor(
val chatMessage: ChatMessage,
val avatarModel: ContactAvatarModel,
val isFromGroup: Boolean,
+ val isReply: Boolean,
+ val replyText: String,
val isGroupedWithPreviousOne: Boolean,
val isGroupedWithNextOne: Boolean
) {
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 c17d49ddc..5b503665e 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
@@ -21,7 +21,9 @@ package org.linphone.ui.main.chat.model
import androidx.annotation.WorkerThread
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,
@@ -30,6 +32,10 @@ class EventLogModel @WorkerThread constructor(
isGroupedWithPreviousOne: Boolean,
isGroupedWithNextOne: Boolean
) {
+ companion object {
+ private const val TAG = "[Event Log Model]"
+ }
+
val type: EventLog.Type = eventLog.type
val isEvent = type != EventLog.Type.ConferenceChatMessage
@@ -37,10 +43,27 @@ class EventLogModel @WorkerThread constructor(
val model = if (isEvent) {
EventModel(eventLog)
} else {
+ val chatMessage = eventLog.chatMessage!!
+ val reply = if (chatMessage.isReply) {
+ val replyMessage = chatMessage.replyMessage
+ if (replyMessage != null) {
+ LinphoneUtils.getTextDescribingMessage(replyMessage)
+ } else {
+ Log.e(
+ "$TAG Failed to find the reply message from ID [${chatMessage.replyMessageId}]"
+ )
+ ">"
+ }
+ } else {
+ ""
+ }
+
ChatMessageModel(
- eventLog.chatMessage!!,
+ chatMessage,
avatarModel,
isFromGroup,
+ chatMessage.isReply,
+ reply,
isGroupedWithPreviousOne,
isGroupedWithNextOne
)
diff --git a/app/src/main/res/drawable/shape_chat_bubble_incoming_first.xml b/app/src/main/res/drawable/shape_chat_bubble_incoming_first.xml
index 513b02d4d..e82f7df3c 100644
--- a/app/src/main/res/drawable/shape_chat_bubble_incoming_first.xml
+++ b/app/src/main/res/drawable/shape_chat_bubble_incoming_first.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/shape_chat_bubble_incoming_full.xml b/app/src/main/res/drawable/shape_chat_bubble_incoming_full.xml
index 6ea2e234d..df3a98fea 100644
--- a/app/src/main/res/drawable/shape_chat_bubble_incoming_full.xml
+++ b/app/src/main/res/drawable/shape_chat_bubble_incoming_full.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/shape_chat_bubble_incoming_reply.xml b/app/src/main/res/drawable/shape_chat_bubble_incoming_reply.xml
new file mode 100644
index 000000000..98ea7684c
--- /dev/null
+++ b/app/src/main/res/drawable/shape_chat_bubble_incoming_reply.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/shape_chat_bubble_outgoing_first.xml b/app/src/main/res/drawable/shape_chat_bubble_outgoing_first.xml
index 348f7f12f..1d29b6a85 100644
--- a/app/src/main/res/drawable/shape_chat_bubble_outgoing_first.xml
+++ b/app/src/main/res/drawable/shape_chat_bubble_outgoing_first.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/shape_chat_bubble_outgoing_full.xml b/app/src/main/res/drawable/shape_chat_bubble_outgoing_full.xml
index 57fe57f90..6ea2e234d 100644
--- a/app/src/main/res/drawable/shape_chat_bubble_outgoing_full.xml
+++ b/app/src/main/res/drawable/shape_chat_bubble_outgoing_full.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/shape_chat_bubble_reactions_incoming_background.xml b/app/src/main/res/drawable/shape_chat_bubble_reactions_incoming_background.xml
index 1389886ba..da536aa15 100644
--- a/app/src/main/res/drawable/shape_chat_bubble_reactions_incoming_background.xml
+++ b/app/src/main/res/drawable/shape_chat_bubble_reactions_incoming_background.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/shape_chat_bubble_reactions_outgoing_background.xml b/app/src/main/res/drawable/shape_chat_bubble_reactions_outgoing_background.xml
index 7ad1af3dc..1389886ba 100644
--- a/app/src/main/res/drawable/shape_chat_bubble_reactions_outgoing_background.xml
+++ b/app/src/main/res/drawable/shape_chat_bubble_reactions_outgoing_background.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/chat_bubble_incoming.xml b/app/src/main/res/layout/chat_bubble_incoming.xml
index d70d0f78d..e062f4442 100644
--- a/app/src/main/res/layout/chat_bubble_incoming.xml
+++ b/app/src/main/res/layout/chat_bubble_incoming.xml
@@ -63,8 +63,27 @@
android:ellipsize="end"
android:visibility="@{!model.isFromGroup ? View.GONE: model.isGroupedWithPreviousOne ? View.GONE : View.VISIBLE}"
app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintBottom_toTopOf="@id/reply"
app:layout_constraintStart_toStartOf="@id/background" />
+
+