Fix single MMS sync

This commit is contained in:
Moez Bhatti
2021-02-23 23:50:27 -05:00
parent 3d84ccceea
commit 84923d1dea
3 changed files with 13 additions and 3 deletions
@@ -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)
}
}
}
@@ -251,6 +251,12 @@ class SyncRepositoryImpl @Inject constructor(
cursorToMessage.map(Pair(cursor, columnsMap)).apply {
existingId?.let { this.id = it }
if (isMms()) {
parts = RealmList<MmsPart>().apply {
addAll(cursorToPart.getPartsCursor(contentId)?.map { cursorToPart.map(it) }.orEmpty())
}
}
conversationRepo.getOrCreateConversation(threadId)
insertOrUpdate()
}