diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/Reaction.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/Reaction.kt index d44f47eca42..61b30a90e3d 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/Reaction.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/Reaction.kt @@ -7,6 +7,7 @@ package com.nextcloud.talk.adapters.messages import android.content.Context +import android.util.Log import android.view.View import android.view.ViewGroup import android.widget.LinearLayout @@ -32,6 +33,16 @@ class Reaction { binding.reactionsEmojiWrapper.removeAllViews() if (message.reactions != null && message.reactions!!.isNotEmpty()) { + message.reactions!!.forEach { + val emoji = it.key + + Log.d("emoji", emoji) + + emoji.codePoints().forEach { cp -> + Log.d("code", "U+${cp.toString(16).uppercase()}") + } + } + binding.reactionsEmojiWrapper.visibility = View.VISIBLE binding.reactionsEmojiWrapper.setOnLongClickListener { diff --git a/app/src/main/java/com/nextcloud/talk/repositories/reactions/ReactionsRepositoryImpl.kt b/app/src/main/java/com/nextcloud/talk/repositories/reactions/ReactionsRepositoryImpl.kt index 2da7e51492e..f2e0433fa07 100644 --- a/app/src/main/java/com/nextcloud/talk/repositories/reactions/ReactionsRepositoryImpl.kt +++ b/app/src/main/java/com/nextcloud/talk/repositories/reactions/ReactionsRepositoryImpl.kt @@ -32,6 +32,22 @@ class ReactionsRepositoryImpl @Inject constructor( val credentials: String = ApiUtils.getCredentials(currentUser.username, currentUser.token)!! override fun addReaction(roomToken: String, message: ChatMessage, emoji: String): Observable { + + fun forceEmojiStyle(text: String): String { + if (text.isEmpty()) return text + + val cps = text.codePoints().toArray() + val lastCp = cps.last() + + return if (lastCp != 0xFE0F) { + text + "\uFE0F" + } else { + text + } + } + + val styledEmoji = forceEmojiStyle(emoji) + return ncApi.sendReaction( credentials, ApiUtils.getUrlForMessageReaction( @@ -39,9 +55,9 @@ class ReactionsRepositoryImpl @Inject constructor( roomToken, message.id ), - emoji + styledEmoji ).map { - val model = mapToReactionAddedModel(message, emoji, it.ocs?.meta!!) + val model = mapToReactionAddedModel(message, styledEmoji, it.ocs?.meta!!) persistAddedModel(model, roomToken) return@map model }