From fd6547171cd73c4e42f115f18d8804777ad939e7 Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Tue, 6 Jan 2026 15:24:03 +0100 Subject: [PATCH 1/7] edit captions Signed-off-by: sowjanyakch --- .../java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt b/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt index 80a3e6ace9..5d70e94bc7 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt @@ -116,11 +116,13 @@ class MessageActionsDialog( ) && !isOlderThanTwentyFourHours + private val messageHasCaptions = messageHasFileAttachment && message.message!= "{file}" && !message.isDeleted + private var messageIsEditable = hasSpreedFeatureCapability( spreedCapabilities, SpreedFeatures.EDIT_MESSAGES ) && - messageHasRegularText && + (messageHasRegularText || messageHasCaptions) && !isOlderThanTwentyFourHours && isUserAllowedToEdit From e539e76a099a17b943a8b87ec5f822f4b8074536 Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Tue, 6 Jan 2026 15:52:52 +0100 Subject: [PATCH 2/7] modify incoming and outcoming preview holders Signed-off-by: sowjanyakch --- .../item_custom_incoming_preview_message.xml | 13 +++++ .../item_custom_outcoming_preview_message.xml | 50 +++++++++++++++++++ 2 files changed, 63 insertions(+) diff --git a/app/src/main/res/layout/item_custom_incoming_preview_message.xml b/app/src/main/res/layout/item_custom_incoming_preview_message.xml index 6b22a8bd85..f33e65e0e2 100644 --- a/app/src/main/res/layout/item_custom_incoming_preview_message.xml +++ b/app/src/main/res/layout/item_custom_incoming_preview_message.xml @@ -222,6 +222,19 @@ tools:visibility="visible" /> + + + + + + + Date: Tue, 6 Jan 2026 16:06:50 +0100 Subject: [PATCH 3/7] add edit timestamps Signed-off-by: sowjanyakch --- .../IncomingPreviewMessageViewHolder.java | 10 ++++++ .../OutcomingPreviewMessageViewHolder.java | 35 +++++++++++++++++++ .../messages/PreviewMessageViewHolder.kt | 10 +++++- 3 files changed, 54 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingPreviewMessageViewHolder.java b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingPreviewMessageViewHolder.java index 00fe1e6669..248c4c83a2 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingPreviewMessageViewHolder.java +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingPreviewMessageViewHolder.java @@ -90,6 +90,9 @@ public void onBind(@NonNull ChatMessage message) { binding.messageTime.setTextColor(ContextCompat.getColor(binding.messageText.getContext(), R.color.no_emphasis_text)); + binding.messageEditIndicator.setTextColor(ContextCompat.getColor(binding.messageText.getContext(), + R.color.no_emphasis_text)); + if(!message.isThread()) { binding.threadTitleWrapperContainer.setVisibility(View.GONE); } else { @@ -97,6 +100,13 @@ public void onBind(@NonNull ChatMessage message) { } } + @NonNull + @Override + public android.widget.TextView getMessageEditIndicator() { + return binding.messageEditIndicator; + } + + @NonNull @Override public EmojiTextView getMessageText() { diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingPreviewMessageViewHolder.java b/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingPreviewMessageViewHolder.java index fa98e6685c..b05d7848c5 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingPreviewMessageViewHolder.java +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingPreviewMessageViewHolder.java @@ -12,6 +12,7 @@ import android.view.View; import android.widget.ImageView; import android.widget.ProgressBar; +import android.widget.TextView; import com.google.android.material.card.MaterialCardView; import com.nextcloud.talk.R; @@ -19,7 +20,9 @@ import com.nextcloud.talk.databinding.ItemThreadTitleBinding; import com.nextcloud.talk.databinding.ReactionsInsideMessageBinding; import com.nextcloud.talk.chat.data.model.ChatMessage; +import com.nextcloud.talk.models.json.chat.ReadStatus; import com.nextcloud.talk.utils.TextMatchers; +import org.jetbrains.annotations.NotNull; import java.util.HashMap; import java.util.Objects; @@ -90,6 +93,33 @@ public void onBind(@NonNull ChatMessage message) { binding.messageTime.setTextColor(ContextCompat.getColor(binding.messageText.getContext(), R.color.no_emphasis_text)); + binding.messageEditIndicator.setTextColor(ContextCompat.getColor(binding.messageText.getContext(), + R.color.no_emphasis_text)); + + binding.checkMark.setVisibility(View.GONE); + Integer readStatusDrawableInt = null; + String readStatusContentDescriptionString = null; + if (message.getReadStatus() == ReadStatus.READ) { + readStatusDrawableInt = R.drawable.ic_check_all; + readStatusContentDescriptionString = + binding.checkMark.getContext().getString(R.string.nc_message_read); + } else if (message.getReadStatus() == ReadStatus.SENT) { + readStatusDrawableInt = R.drawable.ic_check; + readStatusContentDescriptionString = + binding.checkMark.getContext().getString(R.string.nc_message_sent); + } + + if (readStatusDrawableInt != null) { + binding.checkMark.setVisibility(View.VISIBLE); + binding.checkMark.setImageDrawable(ContextCompat.getDrawable(binding.checkMark.getContext(), + readStatusDrawableInt)); + if (viewThemeUtils != null) { + viewThemeUtils.talk.themeMessageCheckMark(binding.checkMark); + } + } + binding.checkMark.setContentDescription(readStatusContentDescriptionString); + + if(!message.isThread()) { binding.threadTitleWrapperContainer.setVisibility(View.GONE); } else { @@ -146,4 +176,9 @@ public ProgressBar getPreviewContactProgressBar() { @NonNull @Override public EmojiTextView getMessageCaption() { return binding.messageCaption; } + + @Override + public @NotNull TextView getMessageEditIndicator() { + return binding.messageEditIndicator; + } } diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/PreviewMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/PreviewMessageViewHolder.kt index 9449526bd8..f4e56892cf 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/PreviewMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/PreviewMessageViewHolder.kt @@ -19,6 +19,7 @@ import android.util.Log import android.view.View import android.widget.ImageView import android.widget.ProgressBar +import android.widget.TextView import androidx.core.content.ContextCompat import androidx.core.net.toUri import androidx.emoji2.widget.EmojiTextView @@ -99,7 +100,13 @@ abstract class PreviewMessageViewHolder(itemView: View?, payload: Any?) : super.onBind(message) image.minimumHeight = DisplayUtils.convertDpToPixel(MIN_IMAGE_HEIGHT, context!!).toInt() - time.text = dateUtils.getLocalTimeStringFromTimestamp(message.timestamp) + if (message.lastEditTimestamp != 0L && !message.isDeleted) { + time.text = dateUtils.getLocalTimeStringFromTimestamp(message.lastEditTimestamp!!) + messageEditIndicator.visibility = View.VISIBLE + } else { + time.text = dateUtils.getLocalTimeStringFromTimestamp(message.timestamp) + messageEditIndicator.visibility = View.GONE + } viewThemeUtils!!.platform.colorCircularProgressBar(progressBar!!, ColorRole.PRIMARY) clickView = image @@ -342,6 +349,7 @@ abstract class PreviewMessageViewHolder(itemView: View?, payload: Any?) : abstract val previewContactPhoto: ImageView abstract val previewContactName: EmojiTextView abstract val previewContactProgressBar: ProgressBar? + abstract val messageEditIndicator: TextView companion object { private const val TAG = "PreviewMsgViewHolder" From 1ef3a672dc2e2a8320d5afa20bdadd9623de7ba4 Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Tue, 6 Jan 2026 16:43:09 +0100 Subject: [PATCH 4/7] remove extra spacing + format Signed-off-by: sowjanyakch --- .../talk/ui/dialog/MessageActionsDialog.kt | 2 +- .../item_custom_incoming_preview_message.xml | 54 +++++++++++++++++-- .../item_custom_outcoming_preview_message.xml | 22 ++++---- 3 files changed, 64 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt b/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt index 5d70e94bc7..7f9c07c178 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt @@ -116,7 +116,7 @@ class MessageActionsDialog( ) && !isOlderThanTwentyFourHours - private val messageHasCaptions = messageHasFileAttachment && message.message!= "{file}" && !message.isDeleted + private val messageHasCaptions = messageHasFileAttachment && message.message != "{file}" && !message.isDeleted private var messageIsEditable = hasSpreedFeatureCapability( spreedCapabilities, diff --git a/app/src/main/res/layout/item_custom_incoming_preview_message.xml b/app/src/main/res/layout/item_custom_incoming_preview_message.xml index f33e65e0e2..cd0d272399 100644 --- a/app/src/main/res/layout/item_custom_incoming_preview_message.xml +++ b/app/src/main/res/layout/item_custom_incoming_preview_message.xml @@ -186,6 +186,23 @@ app:layout_wrapBefore="true" tools:ignore="TextContrastCheck" tools:text="A simple message" /> + + + + + android:text = "@string/hint_edited_message" + android:textSize="12sp"> + + app:layout_flexGrow="1" + app:layout_wrapBefore="false" + tools:text="10:35" /> + app:layout_alignSelf="flex_end" + android:text = "@string/hint_edited_message" + android:textSize="12sp"> + + Date: Wed, 14 Jan 2026 19:17:54 +0100 Subject: [PATCH 5/7] fix merge conflicts Signed-off-by: sowjanyakch --- .../item_custom_incoming_preview_message.xml | 52 +------------------ .../item_custom_outcoming_preview_message.xml | 28 ---------- 2 files changed, 1 insertion(+), 79 deletions(-) diff --git a/app/src/main/res/layout/item_custom_incoming_preview_message.xml b/app/src/main/res/layout/item_custom_incoming_preview_message.xml index cd0d272399..acfb6d52de 100644 --- a/app/src/main/res/layout/item_custom_incoming_preview_message.xml +++ b/app/src/main/res/layout/item_custom_incoming_preview_message.xml @@ -186,39 +186,7 @@ app:layout_wrapBefore="true" tools:ignore="TextContrastCheck" tools:text="A simple message" /> - - - - - + - - - Date: Tue, 20 Jan 2026 17:37:27 +0100 Subject: [PATCH 6/7] merge conflicts + fix layout Signed-off-by: sowjanyakch --- .../item_custom_incoming_preview_message.xml | 93 ++++++++++--------- .../item_custom_outcoming_preview_message.xml | 84 ++++++++--------- 2 files changed, 91 insertions(+), 86 deletions(-) diff --git a/app/src/main/res/layout/item_custom_incoming_preview_message.xml b/app/src/main/res/layout/item_custom_incoming_preview_message.xml index acfb6d52de..82baab9af0 100644 --- a/app/src/main/res/layout/item_custom_incoming_preview_message.xml +++ b/app/src/main/res/layout/item_custom_incoming_preview_message.xml @@ -187,50 +187,55 @@ tools:ignore="TextContrastCheck" tools:text="A simple message" /> - - - - + - - + + + + + + - + \ No newline at end of file diff --git a/app/src/main/res/layout/item_custom_outcoming_preview_message.xml b/app/src/main/res/layout/item_custom_outcoming_preview_message.xml index 99f67aea4e..e847fdf2fa 100644 --- a/app/src/main/res/layout/item_custom_outcoming_preview_message.xml +++ b/app/src/main/res/layout/item_custom_outcoming_preview_message.xml @@ -161,21 +161,6 @@ app:layout_wrapBefore="true" tools:text="A simple message" /> - - + + + + + + - - - - - - + \ No newline at end of file From b7573c461392bf791476938cec16b0707d5639fb Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Thu, 22 Jan 2026 10:52:46 +0100 Subject: [PATCH 7/7] use NonNull instead org.jetbrains.annotations.NotNull Signed-off-by: Marcel Hibbe --- .../adapters/messages/OutcomingPreviewMessageViewHolder.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingPreviewMessageViewHolder.java b/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingPreviewMessageViewHolder.java index b05d7848c5..204957abb8 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingPreviewMessageViewHolder.java +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingPreviewMessageViewHolder.java @@ -22,7 +22,6 @@ import com.nextcloud.talk.chat.data.model.ChatMessage; import com.nextcloud.talk.models.json.chat.ReadStatus; import com.nextcloud.talk.utils.TextMatchers; -import org.jetbrains.annotations.NotNull; import java.util.HashMap; import java.util.Objects; @@ -177,8 +176,9 @@ public ProgressBar getPreviewContactProgressBar() { @Override public EmojiTextView getMessageCaption() { return binding.messageCaption; } + @NonNull @Override - public @NotNull TextView getMessageEditIndicator() { + public TextView getMessageEditIndicator() { return binding.messageEditIndicator; } }