Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
sowjanyakch 2025-04-30 15:55:36 +02:00 committed by Marcel Hibbe
parent 55f4ca6f56
commit 39fee7f869
No known key found for this signature in database
GPG Key ID: C793F8B59F43CE7B
3 changed files with 57 additions and 11 deletions

View File

@ -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

View File

@ -0,0 +1,19 @@
<!--
~ Nextcloud Talk - Android Client
~
~ SPDX-FileCopyrightText: 2025 Sowjanya Kota<sowjanya.kch@gmail.com>
~ SPDX-License-Identifier: GPL-3.0-or-later
-->
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:tint="#000000"
android:viewportHeight="24"
android:viewportWidth="24"
android:width="24dp">
<path android:fillColor="@android:color/white"
android:pathData="M21,19V5c0,-1.1 -0.9,-2 -2,-2H5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2zM8.5,13.5l2.5,3.01L14.5,12l4.5,6H5l3.5,-4.5z"/>
</vector>

View File

@ -435,6 +435,8 @@ How to translate with transifex:
<string name="nc_message_sending">Sending</string>
<string name="nc_message_failed_to_send">Failed to send message:</string>
<string name="nc_add_attachment">Add attachment</string>
<string name="emoji_category_recent">Recent</string>
<string name="nc_current_user">You:</string>
<plurals name="see_similar_system_messages">
<item quantity="one">See %d similar message</item>
<item quantity="other">See %d similar messages</item>