add reactions to incoming text message (wip)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
Marcel Hibbe 2022-03-31 17:23:36 +02:00
parent 0b898616a2
commit dd603f25cf
No known key found for this signature in database
GPG Key ID: C793F8B59F43CE7B
2 changed files with 29 additions and 1 deletions

View File

@ -36,9 +36,12 @@ import android.text.SpannableString
import android.text.TextUtils import android.text.TextUtils
import android.util.TypedValue import android.util.TypedValue
import android.view.View import android.view.View
import android.widget.TextView
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.content.res.ResourcesCompat import androidx.core.content.res.ResourcesCompat
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
import androidx.core.view.children
import androidx.core.view.get
import autodagger.AutoInjector import autodagger.AutoInjector
import coil.load import coil.load
import com.amulyakhare.textdrawable.TextDrawable import com.amulyakhare.textdrawable.TextDrawable
@ -54,6 +57,7 @@ import com.nextcloud.talk.utils.DisplayUtils
import com.nextcloud.talk.utils.TextMatchers import com.nextcloud.talk.utils.TextMatchers
import com.nextcloud.talk.utils.preferences.AppPreferences import com.nextcloud.talk.utils.preferences.AppPreferences
import com.stfalcon.chatkit.messages.MessageHolders import com.stfalcon.chatkit.messages.MessageHolders
import com.vanniktech.emoji.EmojiTextView
import java.util.HashMap import java.util.HashMap
import javax.inject.Inject import javax.inject.Inject
@ -119,6 +123,21 @@ class MagicIncomingTextMessageViewHolder(itemView: View, payload: Any) : Message
} }
itemView.setTag(MessageSwipeCallback.REPLYABLE_VIEW_TAG, message.isReplyable) itemView.setTag(MessageSwipeCallback.REPLYABLE_VIEW_TAG, message.isReplyable)
if (message.reactions != null && message.reactions.isNotEmpty()) {
binding.reactionsEmojiWrapper.removeAllViews()
for ((emoji, amount) in message.reactions) {
val reactionEmoji = EmojiTextView(context)
reactionEmoji.text = emoji
val reactionAmount = TextView(context)
reactionAmount.text = amount.toString()
binding.reactionsEmojiWrapper.addView(reactionEmoji)
binding.reactionsEmojiWrapper.addView(reactionAmount)
}
}
} }
private fun processAuthor(message: ChatMessage) { private fun processAuthor(message: ChatMessage) {

View File

@ -86,6 +86,15 @@
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:textIsSelectable="false" android:textIsSelectable="false"
app:layout_alignSelf="center" /> app:layout_alignSelf="center" />
</com.google.android.flexbox.FlexboxLayout> </com.google.android.flexbox.FlexboxLayout>
<LinearLayout
android:id="@+id/reactions_emoji_wrapper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/bubble"
android:layout_alignStart="@id/bubble"
android:orientation="horizontal">
</LinearLayout>
</RelativeLayout> </RelativeLayout>