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 a928994ac5..39fc46c392 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 e3580f1def..eded06a4ce 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"
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 4321b7b6d4..b568c2c1b8 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
@@ -113,11 +113,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
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 6c58809661..df661a2d1a 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
@@ -172,31 +172,14 @@
app:layout_alignSelf="flex_start"
app:layout_flexGrow="1"
app:layout_wrapBefore="true"
- 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 4839c7d504..b018730bf9 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
@@ -149,27 +149,12 @@
app:layout_wrapBefore="true"
tools:text="A simple message" />
-
-
+
+
+
+
+
+
+
+