Skip polling of on demand accounts

pull/172/head
M66B 6 years ago
parent 8b76023b1b
commit 3ed182530d

@ -37,6 +37,13 @@ public interface DaoAccount {
" ORDER BY `order`, `primary` DESC, name COLLATE NOCASE") " ORDER BY `order`, `primary` DESC, name COLLATE NOCASE")
List<EntityAccount> getSynchronizingAccounts(); List<EntityAccount> getSynchronizingAccounts();
@Query("SELECT * FROM account" +
" WHERE (:id IS NULL OR id = :id)" +
" AND synchronize" +
" AND NOT ondemand" +
" ORDER BY `order`, `primary` DESC, name COLLATE NOCASE")
List<EntityAccount> getPollAccounts(Long id);
@Query("SELECT * FROM account WHERE synchronize") @Query("SELECT * FROM account WHERE synchronize")
LiveData<List<EntityAccount>> liveSynchronizingAccounts(); LiveData<List<EntityAccount>> liveSynchronizingAccounts();

@ -445,15 +445,14 @@ public class ServiceUI extends IntentService {
try { try {
db.beginTransaction(); db.beginTransaction();
List<EntityAccount> accounts = db.account().getSynchronizingAccounts(); List<EntityAccount> accounts = db.account().getPollAccounts(aid < 0 ? null : aid);
for (EntityAccount account : accounts) for (EntityAccount account : accounts) {
if (aid < 0 || account.id.equals(aid)) { List<EntityFolder> folders = db.folder().getSynchronizingFolders(account.id);
List<EntityFolder> folders = db.folder().getSynchronizingFolders(account.id); if (folders.size() > 0)
if (folders.size() > 0) Collections.sort(folders, folders.get(0).getComparator(this));
Collections.sort(folders, folders.get(0).getComparator(this)); for (EntityFolder folder : folders)
for (EntityFolder folder : folders) EntityOperation.sync(this, folder.id, false);
EntityOperation.sync(this, folder.id, false); }
}
db.setTransactionSuccessful(); db.setTransactionSuccessful();
} finally { } finally {

Loading…
Cancel
Save