Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2e512fcc authored by moezbhatti's avatar moezbhatti
Browse files

Include MMS in search results

Closes #1471
parent 748fc05c
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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) }
+11 −1
Original line number Diff line number Diff line
@@ -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()
    }