From 84923d1deabd956561e90ac22574e43bc863bfbc Mon Sep 17 00:00:00 2001 From: Moez Bhatti Date: Tue, 23 Feb 2021 23:50:27 -0500 Subject: [PATCH] Fix single MMS sync --- .../main/java/com/moez/QKSMS/mapper/CursorToPartImpl.kt | 8 ++++++-- .../java/com/moez/QKSMS/repository/SyncRepositoryImpl.kt | 6 ++++++ .../src/main/java/com/moez/QKSMS/mapper/CursorToPart.kt | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/data/src/main/java/com/moez/QKSMS/mapper/CursorToPartImpl.kt b/data/src/main/java/com/moez/QKSMS/mapper/CursorToPartImpl.kt index c057c140..23a2c6a9 100644 --- a/data/src/main/java/com/moez/QKSMS/mapper/CursorToPartImpl.kt +++ b/data/src/main/java/com/moez/QKSMS/mapper/CursorToPartImpl.kt @@ -44,8 +44,12 @@ class CursorToPartImpl @Inject constructor(private val context: Context) : Curso text = from.getStringOrNull(from.getColumnIndexOrThrow(Telephony.Mms.Part.TEXT)) } - override fun getPartsCursor(): Cursor? { - return context.contentResolver.query(CONTENT_URI, null, null, null, null) + override fun getPartsCursor(messageId: Long?): Cursor? { + return when (messageId) { + null -> context.contentResolver.query(CONTENT_URI, null, null, null, null) + else -> context.contentResolver.query(CONTENT_URI, null, + "${Telephony.Mms.Part.MSG_ID} = ?", arrayOf(messageId.toString()), null) + } } } 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 4f03110b..1990adf1 100644 --- a/data/src/main/java/com/moez/QKSMS/repository/SyncRepositoryImpl.kt +++ b/data/src/main/java/com/moez/QKSMS/repository/SyncRepositoryImpl.kt @@ -251,6 +251,12 @@ class SyncRepositoryImpl @Inject constructor( cursorToMessage.map(Pair(cursor, columnsMap)).apply { existingId?.let { this.id = it } + if (isMms()) { + parts = RealmList().apply { + addAll(cursorToPart.getPartsCursor(contentId)?.map { cursorToPart.map(it) }.orEmpty()) + } + } + conversationRepo.getOrCreateConversation(threadId) insertOrUpdate() } diff --git a/domain/src/main/java/com/moez/QKSMS/mapper/CursorToPart.kt b/domain/src/main/java/com/moez/QKSMS/mapper/CursorToPart.kt index 69fdc619..e4ae1acc 100644 --- a/domain/src/main/java/com/moez/QKSMS/mapper/CursorToPart.kt +++ b/domain/src/main/java/com/moez/QKSMS/mapper/CursorToPart.kt @@ -23,6 +23,6 @@ import com.moez.QKSMS.model.MmsPart interface CursorToPart : Mapper { - fun getPartsCursor(): Cursor? + fun getPartsCursor(messageId: Long? = null): Cursor? }