diff --git a/data/src/main/java/com/moez/QKSMS/repository/SyncRepositoryImpl.kt b/data/src/main/java/com/moez/QKSMS/repository/SyncRepositoryImpl.kt index 13407a46..0ecd558e 100644 --- a/data/src/main/java/com/moez/QKSMS/repository/SyncRepositoryImpl.kt +++ b/data/src/main/java/com/moez/QKSMS/repository/SyncRepositoryImpl.kt @@ -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, diff --git a/domain/src/main/java/com/moez/QKSMS/model/Message.kt b/domain/src/main/java/com/moez/QKSMS/model/Message.kt index 5bd99803..8ab4c230 100644 --- a/domain/src/main/java/com/moez/QKSMS/model/Message.kt +++ b/domain/src/main/java/com/moez/QKSMS/model/Message.kt @@ -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 { - isSms() -> body + 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() } } diff --git a/domain/src/main/java/com/moez/QKSMS/model/MmsPart.kt b/domain/src/main/java/com/moez/QKSMS/model/MmsPart.kt index 83d39226..acc65510 100644 --- a/domain/src/main/java/com/moez/QKSMS/model/MmsPart.kt +++ b/domain/src/main/java/com/moez/QKSMS/model/MmsPart.kt @@ -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