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.Context
import android.content.res.ColorStateList import android.content.res.ColorStateList
import android.graphics.Typeface import android.graphics.Typeface
import android.text.SpannableStringBuilder
import android.text.Spanned
import android.text.TextUtils import android.text.TextUtils
import android.text.format.DateUtils import android.text.format.DateUtils
import android.text.style.ImageSpan
import android.view.View import android.view.View
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.content.res.ResourcesCompat import androidx.core.content.res.ResourcesCompat
@ -209,7 +212,6 @@ class ConversationItem(
R.drawable.ic_avatar_document R.drawable.ic_avatar_document
) )
) )
false false
} }
@ -229,7 +231,19 @@ class ConversationItem(
if (!TextUtils.isEmpty(chatMessage?.systemMessage) || if (!TextUtils.isEmpty(chatMessage?.systemMessage) ||
ConversationEnums.ConversationType.ROOM_SYSTEM === model.type 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 { } else {
chatMessage?.activeUser = user chatMessage?.activeUser = user
@ -351,15 +365,6 @@ class ConversationItem(
chatMessage?.getNullsafeActorDisplayName() 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()) { } else if (MessageType.SINGLE_NC_GEOLOCATION_MESSAGE == chatMessage?.getCalculateMessageType()) {
return if (chatMessage?.actorId == chatMessage?.activeUser!!.userId) { return if (chatMessage?.actorId == chatMessage?.activeUser!!.userId) {
sharedApplication!!.getString(R.string.nc_sent_location_you) sharedApplication!!.getString(R.string.nc_sent_location_you)
@ -428,6 +433,26 @@ class ConversationItem(
return "" 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) { class ConversationItemViewHolder(view: View?, adapter: FlexibleAdapter<*>?) : FlexibleViewHolder(view, adapter) {
var binding: RvItemConversationWithLastMessageBinding 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_sending">Sending</string>
<string name="nc_message_failed_to_send">Failed to send message:</string> <string name="nc_message_failed_to_send">Failed to send message:</string>
<string name="nc_add_attachment">Add attachment</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"> <plurals name="see_similar_system_messages">
<item quantity="one">See %d similar message</item> <item quantity="one">See %d similar message</item>
<item quantity="other">See %d similar messages</item> <item quantity="other">See %d similar messages</item>