Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 36b5e3ea authored by cketti's avatar cketti
Browse files

Remove "to/cc me" indicator from message list

parent 0ba55aed
Loading
Loading
Loading
Loading
+4 −17
Original line number Diff line number Diff line
@@ -200,12 +200,6 @@ class MessageListAdapter internal constructor(
        setHasStableIds(true)
    }

    private fun recipientSigil(toMe: Boolean, ccMe: Boolean) = when {
        toMe -> res.getString(R.string.messagelist_sent_to_me_sigil) + " "
        ccMe -> res.getString(R.string.messagelist_sent_cc_me_sigil) + " "
        else -> ""
    }

    override fun getItemCount(): Int = messages.size + if (hasFooter) 1 else 0

    override fun getItemId(position: Int): Long {
@@ -341,16 +335,14 @@ class MessageListAdapter internal constructor(
            setBackgroundColor(holder.itemView, isSelected, isRead, isActive)
            updateWithThreadCount(holder, displayThreadCount)
            val beforePreviewText = if (appearance.senderAboveSubject) subject else displayName
            val sigil = recipientSigil(toMe, ccMe)
            val messageStringBuilder = SpannableStringBuilder(sigil)
                .append(beforePreviewText)
            val messageStringBuilder = SpannableStringBuilder(beforePreviewText)
            if (appearance.previewLines > 0) {
                val preview = getPreview(isMessageEncrypted, previewText)
                messageStringBuilder.append(" ").append(preview)
            }
            holder.preview.setText(messageStringBuilder, TextView.BufferType.SPANNABLE)

            formatPreviewText(holder.preview, beforePreviewText, sigil, isRead)
            formatPreviewText(holder.preview, beforePreviewText, isRead)

            holder.subject.typeface = Typeface.create(holder.subject.typeface, maybeBoldTypeface)
            if (appearance.senderAboveSubject) {
@@ -376,15 +368,10 @@ class MessageListAdapter internal constructor(
        holder.text.text = footerText
    }

    private fun formatPreviewText(
        preview: TextView,
        beforePreviewText: CharSequence,
        sigil: String,
        messageRead: Boolean
    ) {
    private fun formatPreviewText(preview: TextView, beforePreviewText: CharSequence, messageRead: Boolean) {
        val previewText = preview.text as Spannable

        val beforePreviewLength = beforePreviewText.length + sigil.length
        val beforePreviewLength = beforePreviewText.length
        addBeforePreviewSpan(previewText, beforePreviewLength, messageRead)

        // Set span (color) for preview message
+0 −2
Original line number Diff line number Diff line
@@ -12,8 +12,6 @@ data class MessageListItem(
    val internalDate: Long,
    val displayName: CharSequence,
    val displayAddress: Address?,
    val toMe: Boolean,
    val ccMe: Boolean,
    val previewText: String,
    val isMessageEncrypted: Boolean,
    val isRead: Boolean,
+0 −4
Original line number Diff line number Diff line
@@ -15,8 +15,6 @@ class MessageListItemMapper(
    override fun map(message: MessageDetailsAccessor): MessageListItem {
        val fromAddresses = message.fromAddresses
        val toAddresses = message.toAddresses
        val toMe = messageHelper.toMe(account, toAddresses)
        val ccMe = messageHelper.toMe(account, message.ccAddresses)
        val previewResult = message.preview
        val isMessageEncrypted = previewResult.previewType == PreviewType.ENCRYPTED
        val previewText = if (previewResult.isPreviewTextAvailable) previewResult.previewText else ""
@@ -37,8 +35,6 @@ class MessageListItemMapper(
            message.internalDate,
            displayName,
            displayAddress,
            toMe,
            ccMe,
            previewText,
            isMessageEncrypted,
            message.isRead,
+0 −3
Original line number Diff line number Diff line
@@ -933,9 +933,6 @@ Please submit bug reports, contribute new features and ask questions at

    <string name="dialog_attachment_progress_title">Downloading attachment</string>

    <string name="messagelist_sent_to_me_sigil">»</string>
    <string name="messagelist_sent_cc_me_sigil"></string>

    <string name="settings_list_backup_category">Backup</string>
    <string name="settings_list_miscellaneous_category">Miscellaneous</string>

+0 −49
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@ import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertNull
import org.junit.Assert.assertTrue
import org.junit.Ignore
import org.junit.Test
import org.mockito.kotlin.mock
import org.robolectric.Robolectric
@@ -218,48 +217,6 @@ class MessageListAdapterTest : RobolectricTest() {
        assertTrue(view.firstLineView.containsNoSubjectIndicator())
    }

    @Test
    @Ignore("Currently failing. See issue #4152.")
    fun withSenderAboveSubjectAndMessageToMe_shouldDisplayIndicatorInFirstLine() {
        val adapter = createAdapter(senderAboveSubject = true)
        val messageListItem = createMessageListItem(toMe = true)

        val view = adapter.createAndBindView(messageListItem)

        assertTrue(view.firstLineView.containsToMeIndicator())
    }

    @Test
    @Ignore("Currently failing. See issue #4152.")
    fun withSenderAboveSubjectAndMessageCcMe_shouldDisplayIndicatorInFirstLine() {
        val adapter = createAdapter(senderAboveSubject = true)
        val messageListItem = createMessageListItem(ccMe = true)

        val view = adapter.createAndBindView(messageListItem)

        assertTrue(view.firstLineView.containsCcMeIndicator())
    }

    @Test
    fun withoutSenderAboveSubjectAndMessageToMe_shouldDisplayIndicatorInSecondLine() {
        val adapter = createAdapter(senderAboveSubject = false)
        val messageListItem = createMessageListItem(toMe = true)

        val view = adapter.createAndBindView(messageListItem)

        assertTrue(view.secondLineView.containsToMeIndicator())
    }

    @Test
    fun withoutSenderAboveSubjectAndMessageCcMe_shouldDisplayIndicatorInSecondLine() {
        val adapter = createAdapter(senderAboveSubject = false)
        val messageListItem = createMessageListItem(ccMe = true)

        val view = adapter.createAndBindView(messageListItem)

        assertTrue(view.secondLineView.containsCcMeIndicator())
    }

    @Test
    fun withoutAttachments_shouldHideAttachmentCountView() {
        val adapter = createAdapter()
@@ -472,8 +429,6 @@ class MessageListAdapterTest : RobolectricTest() {
        internalDate: Long = 0L,
        displayName: CharSequence = "irrelevant",
        displayAddress: Address? = Address.parse("irrelevant@domain.example").first(),
        toMe: Boolean = false,
        ccMe: Boolean = false,
        previewText: String = "irrelevant",
        isMessageEncrypted: Boolean = false,
        isRead: Boolean = false,
@@ -495,8 +450,6 @@ class MessageListAdapterTest : RobolectricTest() {
            internalDate,
            displayName,
            displayAddress,
            toMe,
            ccMe,
            previewText,
            isMessageEncrypted,
            isRead,
@@ -530,8 +483,6 @@ class MessageListAdapterTest : RobolectricTest() {
    val View.attachmentCountView: View get() = findViewById(R.id.attachment)
    val View.dateView: TextView get() = findViewById(R.id.date)

    fun TextView.containsToMeIndicator() = textString.startsWith("»")
    fun TextView.containsCcMeIndicator() = textString.startsWith("›")
    fun TextView.containsNoSubjectIndicator() = textString.contains(context.getString(R.string.general_no_subject))

    fun TextView.getFirstAbsoluteSizeSpanValueOrNull(): Int? {