From db5ea158c3b2ff5cf390eea2496bec777bb76cbc Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 12 Oct 2023 17:14:41 +0200 Subject: [PATCH] Send custom reaction using emoji picker --- .../java/org/linphone/LinphoneApplication.kt | 2 -- .../chat/fragment/ConversationFragment.kt | 4 +++ .../org/linphone/utils/DataBindingUtils.kt | 13 +++++++ .../chat_conversation_long_press_menu.xml | 35 +++++++++++++------ 4 files changed, 42 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/org/linphone/LinphoneApplication.kt b/app/src/main/java/org/linphone/LinphoneApplication.kt index 6ff062094..fe049bfe1 100644 --- a/app/src/main/java/org/linphone/LinphoneApplication.kt +++ b/app/src/main/java/org/linphone/LinphoneApplication.kt @@ -24,7 +24,6 @@ import android.app.Application import androidx.annotation.MainThread import coil.ImageLoader import coil.ImageLoaderFactory -import coil.decode.GifDecoder import coil.decode.ImageDecoderDecoder import coil.decode.SvgDecoder import coil.decode.VideoFrameDecoder @@ -38,7 +37,6 @@ import org.linphone.core.CorePreferences import org.linphone.core.Factory import org.linphone.core.LogCollectionState import org.linphone.core.LogLevel -import org.linphone.mediastream.Version @MainThread class LinphoneApplication : Application(), ImageLoaderFactory { diff --git a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationFragment.kt b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationFragment.kt index 99c4625f8..9c126f4aa 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationFragment.kt @@ -207,6 +207,10 @@ class ConversationFragment : GenericFragment() { dialog.dismiss() } + layout.setPickEmojiClickListener { + layout.emojiPicker.visibility = View.VISIBLE + } + layout.model = chatMessageModel chatMessageModel.dismissLongPressMenuEvent.observe(viewLifecycleOwner) { dialog.dismiss() diff --git a/app/src/main/java/org/linphone/utils/DataBindingUtils.kt b/app/src/main/java/org/linphone/utils/DataBindingUtils.kt index d9f7a16ab..575d4bd8b 100644 --- a/app/src/main/java/org/linphone/utils/DataBindingUtils.kt +++ b/app/src/main/java/org/linphone/utils/DataBindingUtils.kt @@ -40,6 +40,8 @@ import androidx.core.view.doOnLayout import androidx.databinding.BindingAdapter import androidx.databinding.DataBindingUtil import androidx.databinding.ViewDataBinding +import androidx.emoji2.emojipicker.EmojiPickerView +import androidx.emoji2.emojipicker.EmojiViewItem import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.findViewTreeLifecycleOwner import coil.load @@ -411,3 +413,14 @@ fun validateOnInput(editText: EditText, onValidate: () -> (Unit)) { override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {} }) } + +@BindingAdapter("emojiPickedListener") +fun EmojiPickerView.setEmojiPickedListener(listener: EmojiPickedListener) { + setOnEmojiPickedListener { emoji -> + listener.onEmojiPicked(emoji) + } +} + +interface EmojiPickedListener { + fun onEmojiPicked(item: EmojiViewItem) +} diff --git a/app/src/main/res/layout/chat_conversation_long_press_menu.xml b/app/src/main/res/layout/chat_conversation_long_press_menu.xml index 5b2a1fa59..224f8ce47 100644 --- a/app/src/main/res/layout/chat_conversation_long_press_menu.xml +++ b/app/src/main/res/layout/chat_conversation_long_press_menu.xml @@ -10,6 +10,9 @@ + @@ -47,9 +50,10 @@ android:layout_marginStart="16dp" android:layout_marginEnd="10dp" android:text="@string/emoji_thumbs_up" - android:textSize="37sp" + android:textSize="30sp" app:layout_constraintHorizontal_chainStyle="spread_inside" app:layout_constraintTop_toTopOf="@id/emojis_background" + app:layout_constraintBottom_toBottomOf="@id/emojis_background" app:layout_constraintStart_toStartOf="@id/emojis_background" app:layout_constraintEnd_toStartOf="@id/love"/> @@ -61,7 +65,7 @@ android:layout_marginStart="10dp" android:layout_marginEnd="10dp" android:text="@string/emoji_love" - android:textSize="37sp" + android:textSize="30sp" app:layout_constraintTop_toTopOf="@id/thumbs_up" app:layout_constraintStart_toEndOf="@id/thumbs_up" app:layout_constraintEnd_toStartOf="@id/laughing"/> @@ -74,7 +78,7 @@ android:layout_marginStart="10dp" android:layout_marginEnd="10dp" android:text="@string/emoji_laughing" - android:textSize="37sp" + android:textSize="30sp" app:layout_constraintTop_toTopOf="@id/thumbs_up" app:layout_constraintStart_toEndOf="@id/love" app:layout_constraintEnd_toStartOf="@id/surprised"/> @@ -87,10 +91,10 @@ android:layout_marginStart="10dp" android:layout_marginEnd="10dp" android:text="@string/emoji_surprised" - android:textSize="37sp" + android:textSize="30sp" app:layout_constraintTop_toTopOf="@id/thumbs_up" app:layout_constraintStart_toEndOf="@id/laughing" - app:layout_constraintEnd_toStartOf="@id/laughing"/> + app:layout_constraintEnd_toStartOf="@id/tear"/> + app:layout_constraintTop_toTopOf="@id/thumbs_up" + app:layout_constraintBottom_toBottomOf="@id/thumbs_up" /> + + \ No newline at end of file