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 e41759df3..784a6348f 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 @@ -48,6 +48,7 @@ class ChatMessageModel @WorkerThread constructor( val avatarModel: ContactAvatarModel, val isFromGroup: Boolean, val isReply: Boolean, + val replyTo: String, val replyText: String, val replyToMessageId: String?, val isGroupedWithPreviousOne: 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 44c441a26..12525a2d8 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 @@ -20,6 +20,7 @@ package org.linphone.ui.main.chat.model 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 @@ -46,9 +47,15 @@ class EventLogModel @WorkerThread constructor( EventModel(eventLog) } else { val chatMessage = eventLog.chatMessage!! - val reply = if (chatMessage.isReply) { + var replyTo = "" + val replyText = if (chatMessage.isReply) { val replyMessage = chatMessage.replyMessage if (replyMessage != null) { + val from = replyMessage.fromAddress + replyTo = coreContext.contactsManager.findContactByAddress(from)?.name ?: LinphoneUtils.getDisplayName( + from + ) + LinphoneUtils.getTextDescribingMessage(replyMessage) } else { Log.e( @@ -65,7 +72,8 @@ class EventLogModel @WorkerThread constructor( avatarModel, isFromGroup, chatMessage.isReply, - reply, + replyTo, + replyText, chatMessage.replyMessageId, isGroupedWithPreviousOne, isGroupedWithNextOne, diff --git a/app/src/main/res/drawable/shape_chat_bubble_reply.xml b/app/src/main/res/drawable/shape_chat_bubble_reply.xml index 98ea7684c..b76a97c7c 100644 --- a/app/src/main/res/drawable/shape_chat_bubble_reply.xml +++ b/app/src/main/res/drawable/shape_chat_bubble_reply.xml @@ -1,5 +1,5 @@ - + \ 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 0a2be8173..e73e0bd1b 100644 --- a/app/src/main/res/layout/chat_bubble_incoming.xml +++ b/app/src/main/res/layout/chat_bubble_incoming.xml @@ -67,38 +67,68 @@ 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_constraintBottom_toTopOf="@id/reply_icon" app:layout_constraintStart_toStartOf="@id/bubble" /> + + + + + app:layout_constraintStart_toStartOf="@id/reply" + app:layout_constraintTop_toTopOf="@id/reply_name" + app:layout_constraintBottom_toBottomOf="@id/reply_name" /> + + + app:layout_constraintTop_toBottomOf="@id/reply_name" /> + + + + + app:layout_constraintEnd_toStartOf="@id/reply_name" + app:layout_constraintTop_toTopOf="@id/reply_name" + app:layout_constraintBottom_toBottomOf="@id/reply_name" /> + + + app:layout_constraintTop_toBottomOf="@id/reply_name" /> 88dp 150dp 271dp + 271dp 291dp 5dp 10dp