Launcher widget

This commit is contained in:
Moez Bhatti
2018-03-27 01:12:30 -04:00
parent 38ea0f8a78
commit bb8b2e6cdc
17 changed files with 718 additions and 1 deletions
@@ -93,6 +93,27 @@ class MessageRepositoryImpl @Inject constructor(
})
}
override fun getConversationsForWidget(): List<Pair<Conversation, Message>> {
val realm = Realm.getDefaultInstance()
val conversations = realm.copyFromRealm(realm.where(Conversation::class.java)
.equalTo("archived", false)
.equalTo("blocked", false)
.findAll())
val messages = realm.copyFromRealm(realm.where(Message::class.java)
.sort("date", Sort.DESCENDING)
.distinctValues("threadId")
.findAll())
val conversationMap = conversations.associateBy { conversation -> conversation.id }
return messages.mapNotNull { message ->
val conversation = conversationMap[message.threadId]
if (conversation == null) null else Pair(conversation, message)
}
}
override fun getBlockedConversations(): Flowable<List<Conversation>> {
return Realm.getDefaultInstance()
.where(Conversation::class.java)