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

Commit 8e46c45d authored by moezbhatti's avatar moezbhatti
Browse files

Provide more detailed message summary

parent 5a12b4c1
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ package com.moez.QKSMS.repository

import android.content.ContentResolver
import android.content.ContentUris
import android.content.Context
import android.net.Uri
import android.provider.Telephony
import android.telephony.PhoneNumberUtils
@@ -47,6 +48,7 @@ import javax.inject.Singleton

@Singleton
class SyncRepositoryImpl @Inject constructor(
    private val context: Context,
    private val contentResolver: ContentResolver,
    private val conversationRepo: ConversationRepository,
    private val cursorToConversation: CursorToConversation,
+12 −11
Original line number Diff line number Diff line
@@ -113,19 +113,20 @@ open class Message : RealmObject() {
    /**
     * Returns the text that should be displayed when a preview of the message
     * needs to be displayed, such as in the conversation view or in a notification
     *
     * TODO: Don't return a hardcoded string
     */
    fun getSummary(): String {
        return when {
    fun getSummary(): String = when {
        isSms() -> body

            else -> parts
                    .mapNotNull { it.text }
                    .joinToString("\n") { text -> text }
                    .takeIf { it.isNotEmpty() }
                    ?: getCleansedSubject().takeIf { it.isNotEmpty() }
                    ?: "An MMS message"
        else -> {
            val sb = StringBuilder()

            // Add subject
            getCleansedSubject().takeIf { it.isNotEmpty() }?.run(sb::appendln)

            // Add parts
            parts.mapNotNull { it.getSummary() }.forEach { summary -> sb.appendln(summary) }

            sb.toString().trim()
        }
    }

+8 −0
Original line number Diff line number Diff line
@@ -35,4 +35,12 @@ open class MmsPart : RealmObject() {

    fun getUri() = "content://mms/part/$id".toUri()

    fun getSummary(): String? = when {
        type == "text/plain" -> text
        type == "text/x-vCard" -> "Contact card"
        type.startsWith("image") -> "Photo"
        type.startsWith("video") -> "Video"
        else -> null
    }

}
 No newline at end of file