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 + "'")
|
" AND folder.type = '" + EntityFolder.DRAFTS + "'")
|
||||||
LiveData<EntityFolder> livePrimaryDrafts();
|
LiveData<EntityFolder> livePrimaryDrafts();
|
||||||
|
|
||||||
|
@Query("SELECT COUNT(id) FROM folder" +
|
||||||
|
" WHERE sync_state = 'syncing'" +
|
||||||
|
" AND folder.type <> '" + EntityFolder.OUTBOX + "'")
|
||||||
|
LiveData<Integer> liveSynchronizing();
|
||||||
|
|
||||||
@Query("SELECT folder.*" +
|
@Query("SELECT folder.*" +
|
||||||
", account.name AS accountName, account.color AS accountColor, account.state AS accountState" +
|
", account.name AS accountName, account.color AS accountColor, account.state AS accountState" +
|
||||||
", COUNT(message.id) AS messages" +
|
", 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
|
@Override
|
||||||
public void onChanged(List<TupleMessageEx> messages) {
|
public void onChanged(List<TupleMessageEx> messages) {
|
||||||
Core.notifyMessages(ServiceSynchronize.this, messages);
|
Core.notifyMessages(ServiceSynchronize.this, messages);
|
||||||
|
|
Loading…
Reference in New Issue