From 3820b07ad868b6bd7ff59e167cb48707607025cb Mon Sep 17 00:00:00 2001 From: nielsandriesse Date: Tue, 8 Jun 2021 14:06:16 +1000 Subject: [PATCH] Show message timestamp on select --- .../conversation/v2/ConversationAdapter.kt | 6 +++++- .../conversation/v2/messages/VisibleMessageView.kt | 13 +++++++------ app/src/main/res/layout/view_visible_message.xml | 8 ++++++++ .../main/res/menu/menu_conversation_item_action.xml | 8 ++++---- 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationAdapter.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationAdapter.kt index 63c3f733c7..6c0664cf40 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationAdapter.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationAdapter.kt @@ -4,7 +4,9 @@ import android.content.Context import android.database.Cursor import android.graphics.drawable.ColorDrawable import android.view.ViewGroup +import androidx.core.view.isVisible import androidx.recyclerview.widget.RecyclerView.ViewHolder +import kotlinx.android.synthetic.main.view_visible_message.view.* import network.loki.messenger.R import org.thoughtcrime.securesms.conversation.v2.messages.ControlMessageView import org.thoughtcrime.securesms.conversation.v2.messages.VisibleMessageView @@ -62,11 +64,13 @@ class ConversationAdapter(context: Context, cursor: Cursor, private val onItemPr when (viewHolder) { is VisibleMessageViewHolder -> { val view = viewHolder.view - view.background = if (selectedItems.contains(message)) { + val isSelected = selectedItems.contains(message) + view.background = if (isSelected) { ColorDrawable(context.resources.getColorWithID(R.color.accent, context.theme)) } else { null } + view.messageTimestampTextView.isVisible = isSelected val position = viewHolder.adapterPosition view.bind(message, getMessageBefore(position, cursor), getMessageAfter(position, cursor)) view.setOnClickListener { onItemPress(message, viewHolder.adapterPosition) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt index 22852cf194..c56f9a08bf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt @@ -2,7 +2,6 @@ package org.thoughtcrime.securesms.conversation.v2.messages import android.content.Context import android.util.AttributeSet -import android.util.Log import android.view.Gravity import android.view.LayoutInflater import android.view.View @@ -67,17 +66,19 @@ class VisibleMessageView : LinearLayout { val showDateBreak = (previous == null || !DateUtils.isSameDay(message.timestamp, previous.timestamp)) dateBreakTextView.isVisible = showDateBreak dateBreakTextView.text = if (showDateBreak) DateUtils.getRelativeDate(context, Locale.getDefault(), message.timestamp) else "" + // Timestamp + messageTimestampTextView.text = DateUtils.getExtendedRelativeTimeSpanString(context, Locale.getDefault(), message.timestamp) // Margins - val messageContentViewLayoutParams = messageContentView.layoutParams as LinearLayout.LayoutParams + val messageContentContainerLayoutParams = messageContentContainer.layoutParams as LinearLayout.LayoutParams if (isGroupThread) { - messageContentViewLayoutParams.leftMargin = if (message.isOutgoing) resources.getDimension(R.dimen.very_large_spacing).toInt() else 0 + messageContentContainerLayoutParams.leftMargin = if (message.isOutgoing) resources.getDimension(R.dimen.very_large_spacing).toInt() else 0 } else { - messageContentViewLayoutParams.leftMargin = if (message.isOutgoing) resources.getDimension(R.dimen.very_large_spacing).toInt() + messageContentContainerLayoutParams.leftMargin = if (message.isOutgoing) resources.getDimension(R.dimen.very_large_spacing).toInt() else resources.getDimension(R.dimen.medium_spacing).toInt() } - messageContentViewLayoutParams.rightMargin = if (message.isOutgoing) resources.getDimension(R.dimen.medium_spacing).toInt() + messageContentContainerLayoutParams.rightMargin = if (message.isOutgoing) resources.getDimension(R.dimen.medium_spacing).toInt() else resources.getDimension(R.dimen.very_large_spacing).toInt() - messageContentView.layoutParams = messageContentViewLayoutParams + messageContentContainer.layoutParams = messageContentContainerLayoutParams // Set inter-message spacing val isStartOfMessageCluster = isStartOfMessageCluster(message, previous, isGroupThread) val isEndOfMessageCluster = isEndOfMessageCluster(message, next, isGroupThread) diff --git a/app/src/main/res/layout/view_visible_message.xml b/app/src/main/res/layout/view_visible_message.xml index 758a92328a..f6607ab00a 100644 --- a/app/src/main/res/layout/view_visible_message.xml +++ b/app/src/main/res/layout/view_visible_message.xml @@ -57,6 +57,7 @@ @@ -76,6 +77,13 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" /> + + diff --git a/app/src/main/res/menu/menu_conversation_item_action.xml b/app/src/main/res/menu/menu_conversation_item_action.xml index e9e1401837..b2006d81e4 100644 --- a/app/src/main/res/menu/menu_conversation_item_action.xml +++ b/app/src/main/res/menu/menu_conversation_item_action.xml @@ -7,25 +7,25 @@ android:title="@string/conversation_context__menu_reply_to_message" android:id="@+id/menu_context_reply" android:icon="?menu_reply_icon" - app:showAsAction="ifRoom" /> + app:showAsAction="always" /> + app:showAsAction="always" /> + app:showAsAction="always" /> + app:showAsAction="always" />