diff --git a/app/src/main/java/org/linphone/ui/main/chat/model/ChatMessageBottomSheetParticipantModel.kt b/app/src/main/java/org/linphone/ui/main/chat/model/ChatMessageBottomSheetParticipantModel.kt
index 0ee472e54..c21dd59d4 100644
--- a/app/src/main/java/org/linphone/ui/main/chat/model/ChatMessageBottomSheetParticipantModel.kt
+++ b/app/src/main/java/org/linphone/ui/main/chat/model/ChatMessageBottomSheetParticipantModel.kt
@@ -1,14 +1,22 @@
package org.linphone.ui.main.chat.model
+import androidx.annotation.UiThread
import androidx.annotation.WorkerThread
import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.core.Address
class ChatMessageBottomSheetParticipantModel @WorkerThread constructor(
address: Address,
- val value: String
+ val value: String,
+ val isOurOwnReaction: Boolean = false,
+ val onClick: (() -> Unit)? = null
) {
val sipUri = address.asStringUriOnly()
val avatarModel = coreContext.contactsManager.getContactAvatarModelForAddress(address)
+
+ @UiThread
+ fun clicked() {
+ onClick?.invoke()
+ }
}
diff --git a/app/src/main/java/org/linphone/ui/main/chat/model/ChatMessageReactionsModel.kt b/app/src/main/java/org/linphone/ui/main/chat/model/ChatMessageReactionsModel.kt
index 3df3caffd..0e96ba7d2 100644
--- a/app/src/main/java/org/linphone/ui/main/chat/model/ChatMessageReactionsModel.kt
+++ b/app/src/main/java/org/linphone/ui/main/chat/model/ChatMessageReactionsModel.kt
@@ -2,6 +2,7 @@ package org.linphone.ui.main.chat.model
import androidx.annotation.WorkerThread
import androidx.lifecycle.MutableLiveData
+import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.core.ChatMessage
import org.linphone.core.tools.Log
@@ -46,7 +47,24 @@ class ChatMessageReactionsModel @WorkerThread constructor(
val count = reactionsMap.getOrDefault(body, 0)
reactionsMap[body] = count + 1
- allReactions.add(ChatMessageBottomSheetParticipantModel(reaction.fromAddress, body))
+ val isOurOwn = reaction.fromAddress.weakEqual(chatMessage.chatRoom.localAddress)
+ allReactions.add(
+ ChatMessageBottomSheetParticipantModel(
+ reaction.fromAddress,
+ body,
+ isOurOwn
+ ) {
+ if (isOurOwn) {
+ coreContext.postOnCoreThread {
+ Log.i(
+ "$TAG Removing our own reaction for chat message [${chatMessage.messageId}]"
+ )
+ val removeReaction = chatMessage.createReaction("")
+ removeReaction.send()
+ }
+ }
+ }
+ )
if (!differentReactionsList.contains(body)) {
differentReactionsList.add(body)
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_background.xml
similarity index 100%
rename from app/src/main/res/drawable/shape_chat_bubble_reactions_incoming_background.xml
rename to app/src/main/res/drawable/shape_chat_bubble_reactions_background.xml
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
deleted file mode 100644
index 7ad1af3dc..000000000
--- a/app/src/main/res/drawable/shape_chat_bubble_reactions_outgoing_background.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ 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 a06f16efb..bdc18a523 100644
--- a/app/src/main/res/layout/chat_bubble_incoming.xml
+++ b/app/src/main/res/layout/chat_bubble_incoming.xml
@@ -90,7 +90,7 @@
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:text="@{model.replyText, default=`Ceci est une réponse!`}"
- android:textColor="@color/gray_main2_400"
+ android:textColor="@color/gray_main2_500"
android:textSize="14sp"
android:maxLines="2"
android:ellipsize="end"
@@ -176,7 +176,7 @@
android:layout_marginTop="-5dp"
android:layout_marginBottom="5dp"
android:orientation="horizontal"
- android:background="@drawable/shape_chat_bubble_reactions_incoming_background"
+ android:background="@drawable/shape_chat_bubble_reactions_background"
android:text="@{model.reactions, default=@string/emoji_love}"
android:textSize="15sp"
android:textColor="@color/gray_main2_600"
diff --git a/app/src/main/res/layout/chat_bubble_outgoing.xml b/app/src/main/res/layout/chat_bubble_outgoing.xml
index 4fd51395a..19cdec766 100644
--- a/app/src/main/res/layout/chat_bubble_outgoing.xml
+++ b/app/src/main/res/layout/chat_bubble_outgoing.xml
@@ -60,7 +60,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:text="@{model.replyText, default=`Ceci est une réponse!`}"
- android:textColor="@color/gray_main2_400"
+ android:textColor="@color/gray_main2_500"
android:textSize="14sp"
android:maxLines="2"
android:ellipsize="end"
@@ -137,7 +137,7 @@
android:layout_marginTop="-5dp"
android:layout_marginBottom="5dp"
android:orientation="horizontal"
- android:background="@drawable/shape_chat_bubble_reactions_outgoing_background"
+ android:background="@drawable/shape_chat_bubble_reactions_background"
android:text="@{model.reactions, default=@string/emoji_love}"
android:textSize="20sp"
android:textColor="@color/gray_main2_600"
diff --git a/app/src/main/res/layout/chat_message_bottom_sheet_list_cell.xml b/app/src/main/res/layout/chat_message_bottom_sheet_list_cell.xml
index 781740e2f..b2c603441 100644
--- a/app/src/main/res/layout/chat_message_bottom_sheet_list_cell.xml
+++ b/app/src/main/res/layout/chat_message_bottom_sheet_list_cell.xml
@@ -15,6 +15,7 @@
@@ -64,6 +65,19 @@
app:layout_constraintStart_toEndOf="@id/avatar"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toStartOf="@id/date_time"
+ app:layout_constraintBottom_toTopOf="@id/remove_reaction"/>
+
+
Error %s
Reactions %s
%s %s
+ Click to remove
No meeting for the moment…
Today