forked from upstream-mirrors/quik
Launcher widget
This commit is contained in:
@@ -19,6 +19,8 @@
|
||||
package manager
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import com.klinker.android.send_message.BroadcastUtils
|
||||
import me.leolin.shortcutbadger.ShortcutBadger
|
||||
import javax.inject.Inject
|
||||
|
||||
@@ -26,6 +28,8 @@ class WidgetManagerImpl @Inject constructor(private val context: Context) : Widg
|
||||
|
||||
override fun updateUnreadCount(count: Int) {
|
||||
ShortcutBadger.applyCount(context, count)
|
||||
|
||||
BroadcastUtils.sendExplicitBroadcast(context, Intent(), WidgetManager.ACTION_NOTIFY_DATASET_CHANGED)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user