mirror of https://github.com/M66B/FairEmail.git
Batch notify new messages
This commit is contained in:
parent
68cf08526e
commit
3c63f4bfe3
|
@ -89,6 +89,11 @@ public interface DaoFolder {
|
|||
" AND folder.type = '" + EntityFolder.DRAFTS + "'")
|
||||
LiveData<EntityFolder> livePrimaryDrafts();
|
||||
|
||||
@Query("SELECT COUNT(id) FROM folder" +
|
||||
" WHERE sync_state = 'syncing'" +
|
||||
" AND folder.type <> '" + EntityFolder.OUTBOX + "'")
|
||||
LiveData<Integer> liveSynchronizing();
|
||||
|
||||
@Query("SELECT folder.*" +
|
||||
", account.name AS accountName, account.color AS accountColor, account.state AS accountState" +
|
||||
", COUNT(message.id) AS messages" +
|
||||
|
|
|
@ -128,7 +128,20 @@ public class ServiceSynchronize extends LifecycleService {
|
|||
}
|
||||
});
|
||||
|
||||
db.message().liveUnseenNotify().observe(this, new Observer<List<TupleMessageEx>>() {
|
||||
final TwoStateOwner cowner = new TwoStateOwner(this);
|
||||
|
||||
db.folder().liveSynchronizing().observe(this, new Observer<Integer>() {
|
||||
@Override
|
||||
public void onChanged(Integer count) {
|
||||
Log.i("Synchronizing folders=" + count);
|
||||
if (count == 0)
|
||||
cowner.start();
|
||||
else
|
||||
cowner.stop();
|
||||
}
|
||||
});
|
||||
|
||||
db.message().liveUnseenNotify().observe(cowner, new Observer<List<TupleMessageEx>>() {
|
||||
@Override
|
||||
public void onChanged(List<TupleMessageEx> messages) {
|
||||
Core.notifyMessages(ServiceSynchronize.this, messages);
|
||||
|
|
Loading…
Reference in New Issue