From 30f9f381cd68e50e96e93f12bc690c9d48527a18 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 31 Oct 2023 13:06:59 +0100 Subject: [PATCH] Added click to remove our own reaction --- .../ChatMessageBottomSheetParticipantModel.kt | 10 +++++++++- .../chat/model/ChatMessageReactionsModel.kt | 20 ++++++++++++++++++- ...hape_chat_bubble_reactions_background.xml} | 0 ...t_bubble_reactions_outgoing_background.xml | 6 ------ .../main/res/layout/chat_bubble_incoming.xml | 4 ++-- .../main/res/layout/chat_bubble_outgoing.xml | 4 ++-- .../chat_message_bottom_sheet_list_cell.xml | 14 +++++++++++++ app/src/main/res/values/strings.xml | 1 + 8 files changed, 47 insertions(+), 12 deletions(-) rename app/src/main/res/drawable/{shape_chat_bubble_reactions_incoming_background.xml => shape_chat_bubble_reactions_background.xml} (100%) delete mode 100644 app/src/main/res/drawable/shape_chat_bubble_reactions_outgoing_background.xml 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