Use RealmAdapter for conversation info media

This commit is contained in:
Moez Bhatti
2018-04-05 05:21:07 -04:00
parent 8f2415afa2
commit 7a8aea0f38
8 changed files with 25 additions and 29 deletions
@@ -40,7 +40,6 @@ class CursorToPartImpl @Inject constructor(private val context: Context) : Curso
override fun map(from: Cursor) = MmsPart().apply {
id = from.getLong(from.getColumnIndexOrThrow(Telephony.Mms.Part._ID))
messageId = from.getLong(from.getColumnIndexOrThrow(Telephony.Mms.Part.MSG_ID))
// Type will sometimes return null, resulting in a crash if we don't default to an empty string
type = from.getString(from.getColumnIndexOrThrow(Telephony.Mms.Part.CONTENT_TYPE)) ?: ""
@@ -32,7 +32,6 @@ import com.klinker.android.send_message.BroadcastUtils
import com.klinker.android.send_message.StripAccents
import io.reactivex.Flowable
import io.reactivex.Maybe
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
import io.realm.Realm
@@ -50,7 +49,6 @@ import util.MessageUtils
import util.Preferences
import util.extensions.asFlowable
import util.extensions.asMaybe
import util.extensions.asObservable
import util.extensions.insertOrUpdate
import util.extensions.map
import javax.inject.Inject
@@ -207,15 +205,14 @@ class MessageRepositoryImpl @Inject constructor(
.findFirst()
}
override fun getPartsForConversation(threadId: Long): Observable<List<MmsPart>> {
override fun getPartsForConversation(threadId: Long): RealmResults<MmsPart> {
return Realm.getDefaultInstance()
.where(Message::class.java)
.equalTo("threadId", threadId)
.isNotEmpty("parts")
.sort("date")
.findAll()
.asObservable()
.map { messages -> messages.flatMap { it.parts } }
.where(MmsPart::class.java)
.equalTo("messages.threadId", threadId)
.contains("type", "image/")
.isNotEmpty("image")
.sort("id", Sort.DESCENDING)
.findAllAsync()
}
/**