diff --git a/app/src/main/java/eu/faircode/email/DaoFolder.java b/app/src/main/java/eu/faircode/email/DaoFolder.java index 3262a02742..f603bce1b0 100644 --- a/app/src/main/java/eu/faircode/email/DaoFolder.java +++ b/app/src/main/java/eu/faircode/email/DaoFolder.java @@ -39,6 +39,9 @@ public interface DaoFolder { " ORDER BY CASE WHEN folder.type = '" + EntityFolder.USER + "' THEN 1 ELSE 0 END") List getFolders(long account, boolean synchronize); + @Query("SELECT * FROM folder WHERE synchronize") + List getFoldersSynchronizing(); + @Query("SELECT * FROM folder WHERE unified") List getUnifiedFolders(); diff --git a/app/src/main/java/eu/faircode/email/FragmentSetup.java b/app/src/main/java/eu/faircode/email/FragmentSetup.java index ae073bd78d..3cd656e43d 100644 --- a/app/src/main/java/eu/faircode/email/FragmentSetup.java +++ b/app/src/main/java/eu/faircode/email/FragmentSetup.java @@ -437,6 +437,17 @@ public class FragmentSetup extends FragmentEx { btnPermissions.setEnabled(!has); tvPermissionsDone.setText(has ? R.string.title_setup_done : R.string.title_setup_to_do); tvPermissionsDone.setCompoundDrawablesWithIntrinsicBounds(has ? check : null, null, null, null); + + if (has) + new SimpleTask() { + @Override + protected Void onLoad(Context context, Bundle args) { + DB db = DB.getInstance(context); + for (EntityFolder folder : db.folder().getFoldersSynchronizing()) + EntityOperation.sync(db, folder.id); + return null; + } + }.load(FragmentSetup.this, new Bundle()); } @Override