From 39fee7f869b84b82139c37923f175e59002253d7 Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Wed, 30 Apr 2025 15:55:36 +0200 Subject: [PATCH] add icon Signed-off-by: sowjanyakch --- .../talk/adapters/items/ConversationItem.kt | 47 ++++++++++++++----- .../main/res/drawable/baseline_image_24.xml | 19 ++++++++ app/src/main/res/values/strings.xml | 2 + 3 files changed, 57 insertions(+), 11 deletions(-) create mode 100644 app/src/main/res/drawable/baseline_image_24.xml diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.kt b/app/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.kt index 9ccf8733d..6f3158f6a 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.kt @@ -13,8 +13,11 @@ import android.annotation.SuppressLint import android.content.Context import android.content.res.ColorStateList import android.graphics.Typeface +import android.text.SpannableStringBuilder +import android.text.Spanned import android.text.TextUtils import android.text.format.DateUtils +import android.text.style.ImageSpan import android.view.View import androidx.core.content.ContextCompat import androidx.core.content.res.ResourcesCompat @@ -209,7 +212,6 @@ class ConversationItem( R.drawable.ic_avatar_document ) ) - false } @@ -229,7 +231,19 @@ class ConversationItem( if (!TextUtils.isEmpty(chatMessage?.systemMessage) || ConversationEnums.ConversationType.ROOM_SYSTEM === model.type ) { - holder.binding.dialogLastMessage.text = chatMessage?.text + holder.binding.dialogLastMessage.text = chatMessage.text + } else if (MessageType.SINGLE_NC_ATTACHMENT_MESSAGE == chatMessage.getCalculateMessageType()) { + var attachmentName = chatMessage.message + if (attachmentName == "{file}") { + attachmentName = chatMessage.messageParameters?.get("file")?.get("name") + } + val name = if (chatMessage.messageParameters?.get("actor")?.get("name") == user.userId) { + sharedApplication!!.resources.getString(R.string.nc_current_user) + } else { + "${chatMessage.messageParameters?.get("actor")?.get("name")}:" + } + val lastMessage = setLastNameFortAttachmentDialog(name, R.drawable.baseline_image_24, attachmentName!!) + holder.binding.dialogLastMessage.text = lastMessage } else { chatMessage?.activeUser = user @@ -351,15 +365,6 @@ class ConversationItem( chatMessage?.getNullsafeActorDisplayName() ) } - } else if (MessageType.SINGLE_NC_ATTACHMENT_MESSAGE == chatMessage?.getCalculateMessageType()) { - return if (chatMessage?.actorId == chatMessage?.activeUser!!.userId) { - sharedApplication!!.getString(R.string.nc_sent_an_attachment_you) - } else { - String.format( - sharedApplication!!.resources.getString(R.string.nc_sent_an_attachment), - chatMessage?.getNullsafeActorDisplayName() - ) - } } else if (MessageType.SINGLE_NC_GEOLOCATION_MESSAGE == chatMessage?.getCalculateMessageType()) { return if (chatMessage?.actorId == chatMessage?.activeUser!!.userId) { sharedApplication!!.getString(R.string.nc_sent_location_you) @@ -428,6 +433,26 @@ class ConversationItem( return "" } + fun setLastNameFortAttachmentDialog(actor: String, icon: Int, attachmentName: String): SpannableStringBuilder { + val builder = SpannableStringBuilder() + builder.append(actor) + + val drawable = ContextCompat.getDrawable(context, icon) + + drawable?.let { + val scaleFactor = 0.7f + val desiredWidth = (it.intrinsicWidth * scaleFactor).toInt() + val desiredHeight = (it.intrinsicHeight * scaleFactor).toInt() + it.setBounds(0, 0, desiredWidth, desiredHeight) + val imageSpan = ImageSpan(it, ImageSpan.ALIGN_BOTTOM) + val startImage = builder.length + builder.append(" ") + builder.setSpan(imageSpan, startImage, startImage + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) + } + builder.append(attachmentName) + return builder + } + class ConversationItemViewHolder(view: View?, adapter: FlexibleAdapter<*>?) : FlexibleViewHolder(view, adapter) { var binding: RvItemConversationWithLastMessageBinding diff --git a/app/src/main/res/drawable/baseline_image_24.xml b/app/src/main/res/drawable/baseline_image_24.xml new file mode 100644 index 000000000..f7eda4ffc --- /dev/null +++ b/app/src/main/res/drawable/baseline_image_24.xml @@ -0,0 +1,19 @@ + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1440edc32..9ed925f62 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -435,6 +435,8 @@ How to translate with transifex: Sending Failed to send message: Add attachment + Recent + You: See %d similar message See %d similar messages