Update edit message history dialog to match designs.

This commit is contained in:
Clark
2023-05-15 10:00:11 -04:00
committed by Greyson Parrelli
parent 71c3bcdd29
commit 50ad005e7c
9 changed files with 18 additions and 24 deletions

View File

@@ -1933,10 +1933,6 @@ public final class ConversationItem extends RelativeLayout implements BindableCo
}
private boolean isFooterVisible(@NonNull MessageRecord current, @NonNull Optional<MessageRecord> next, boolean isGroupThread) {
if (displayMode == ConversationItemDisplayMode.EXTRA_CONDENSED) {
return false;
}
boolean differentTimestamps = next.isPresent() && !DateUtils.isSameExtendedRelativeTimestamp(next.get().getTimestamp(), current.getTimestamp());
return forceFooter(messageRecord) || current.getExpiresIn() > 0 || !current.isSecure() || current.isPending() || current.isPendingInsecureSmsFallback() ||

View File

@@ -7,7 +7,7 @@ enum class ConversationItemDisplayMode {
/** Smaller bubbles, often trimming text and shrinking images. Used for quote threads. */
CONDENSED,
/** Smaller bubbles, no footers */
/** Smaller bubbles, always singular bubbles, with a footer. Used for edit message history. */
EXTRA_CONDENSED,
/** Less length restrictions. Used to show more info in message details. */

View File

@@ -80,7 +80,7 @@ class MessageQuotesBottomSheet : FixedRoundedCornerBottomSheetDialogFragment() {
layoutManager = SmoothScrollingLinearLayoutManager(requireContext(), true)
adapter = messageAdapter
itemAnimator = null
addItemDecoration(MessageQuoteHeaderDecoration(context))
addItemDecoration(OriginalMessageSeparatorDecoration(context, R.string.MessageQuotesBottomSheet_replies))
doOnNextLayout {
// Adding this without waiting for a layout pass would result in an indeterminate amount of padding added to the top of the view

View File

@@ -7,6 +7,7 @@ import android.graphics.Rect
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.core.view.children
import androidx.core.view.marginLeft
import androidx.recyclerview.widget.RecyclerView
@@ -14,9 +15,9 @@ import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.util.ViewUtil
/**
* Serves as the separator between the original message and the messages that quote it in [MessageQuotesBottomSheet]
* Serves as the separator between the original message and other messages. Used in [MessageQuotesBottomSheet] and [EditMessageHistoryDialog]
*/
class MessageQuoteHeaderDecoration(context: Context) : RecyclerView.ItemDecoration() {
class OriginalMessageSeparatorDecoration(context: Context, val titleRes: Int) : RecyclerView.ItemDecoration() {
private val dividerMargin = ViewUtil.dpToPx(context, 32)
private val dividerHeight = ViewUtil.dpToPx(context, 2)
@@ -56,7 +57,9 @@ class MessageQuoteHeaderDecoration(context: Context) : RecyclerView.ItemDecorati
return it
}
val header: View = LayoutInflater.from(parent.context).inflate(R.layout.message_quote_header_decoration, parent, false)
val header: View = LayoutInflater.from(parent.context).inflate(R.layout.original_message_separator_decoration, parent, false)
val titleView: TextView = header.findViewById(R.id.separator_title)
titleView.setText(titleRes)
val widthSpec = View.MeasureSpec.makeMeasureSpec(parent.width, View.MeasureSpec.EXACTLY)
val heightSpec = View.MeasureSpec.makeMeasureSpec(parent.height, View.MeasureSpec.UNSPECIFIED)

View File

@@ -10,6 +10,7 @@ import androidx.fragment.app.viewModels
import androidx.recyclerview.widget.LinearLayoutManager
import io.reactivex.rxjava3.kotlin.subscribeBy
import org.signal.core.util.concurrent.LifecycleDisposable
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.components.FixedRoundedCornerBottomSheetDialogFragment
import org.thoughtcrime.securesms.components.ViewBinderDelegate
import org.thoughtcrime.securesms.conversation.ConversationAdapter
@@ -19,6 +20,7 @@ import org.thoughtcrime.securesms.conversation.ConversationMessage
import org.thoughtcrime.securesms.conversation.colors.Colorizer
import org.thoughtcrime.securesms.conversation.colors.RecyclerViewColorizer
import org.thoughtcrime.securesms.conversation.mutiselect.MultiselectPart
import org.thoughtcrime.securesms.conversation.quotes.OriginalMessageSeparatorDecoration
import org.thoughtcrime.securesms.database.model.MessageRecord
import org.thoughtcrime.securesms.database.model.MmsMessageRecord
import org.thoughtcrime.securesms.databinding.MessageEditHistoryBottomSheetBinding
@@ -76,9 +78,10 @@ class EditMessageHistoryDialog : FixedRoundedCornerBottomSheetDialogFragment() {
}
binding.editHistoryList.apply {
layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, true)
adapter = messageAdapter
itemAnimator = null
addItemDecoration(OriginalMessageSeparatorDecoration(context, R.string.EditMessageHistoryDialog_title))
}
val recyclerViewColorizer = RecyclerViewColorizer(binding.editHistoryList)

View File

@@ -36,16 +36,16 @@ object EditMessageHistoryRepository {
.getMessageEditHistory(messageId)
.toList()
if (records.isEmpty()) {
return emptyList()
}
val attachmentHelper = AttachmentHelper()
.apply {
addAll(records)
fetchAttachments()
}
if (records.isEmpty()) {
return emptyList()
}
val threadRecipient: Recipient = requireNotNull(SignalDatabase.threads.getRecipientForThreadId(records[0].threadId))
return attachmentHelper

View File

@@ -1943,7 +1943,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat
val cursor = readableDatabase.select(*MMS_PROJECTION)
.from(TABLE_NAME)
.where("$TABLE_NAME.$ID = ? OR $TABLE_NAME.$LATEST_REVISION_ID = ?", id, id)
.orderBy("$TABLE_NAME.$ID DESC")
.orderBy("$TABLE_NAME.$DATE_SENT ASC")
.run()
return mmsReaderFor(cursor)

View File

@@ -13,14 +13,6 @@
android:layout_marginTop="16dp"
android:background="@color/signal_icon_tint_tab_unselected" />
<TextView
android:id="@+id/edit_history_title"
style="@style/Signal.Text.TitleMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="18dp"
android:text="@string/EditMessageHistoryDialog_title" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"

View File

@@ -8,5 +8,5 @@
android:paddingHorizontal="24dp"
android:maxLines="2"
android:ellipsize="end"
android:text="@string/MessageQuotesBottomSheet_replies"
android:id="@+id/separator_title"
style="@style/Signal.Text.TitleSmall"/>