Include MMS in search results

Closes #1471
This commit is contained in:
moezbhatti
2019-09-29 19:03:29 -04:00
parent 748fc05cc0
commit 2e512fcc1f
2 changed files with 17 additions and 1 deletions
@@ -107,13 +107,19 @@ class ConversationRepositoryImpl @Inject constructor(
val messagesByConversation = Realm.getDefaultInstance()
.where(Message::class.java)
.beginGroup()
.contains("body", normalizedQuery, Case.INSENSITIVE)
.or()
.contains("parts.text", normalizedQuery, Case.INSENSITIVE)
.endGroup()
.findAll()
.asSequence()
.groupBy { message -> message.threadId }
.filter { (threadId, _) -> conversations.firstOrNull { it.id == threadId } != null }
.map { (threadId, messages) -> Pair(conversations.first { it.id == threadId }, messages.size) }
.map { (conversation, messages) -> SearchResult(normalizedQuery, conversation, messages) }
.sortedByDescending { result -> result.messages }
.toList()
return conversations
.filter { conversation -> conversationFilter.filter(conversation, normalizedQuery) }
@@ -71,7 +71,17 @@ class MessageRepositoryImpl @Inject constructor(
return Realm.getDefaultInstance()
.where(Message::class.java)
.equalTo("threadId", threadId)
.let { if (query.isEmpty()) it else it.contains("body", query, Case.INSENSITIVE) }
.let {
when (query.isEmpty()) {
true -> it
false -> it
.beginGroup()
.contains("body", query, Case.INSENSITIVE)
.or()
.contains("parts.text", query, Case.INSENSITIVE)
.endGroup()
}
}
.sort("date")
.findAllAsync()
}