From 9665ff64f279c4ea131983e7097ae12401135d86 Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 1 Feb 2020 08:19:41 +0100 Subject: [PATCH] Sort folders to sync --- .../java/eu/faircode/email/FragmentAccounts.java | 5 +++++ .../java/eu/faircode/email/FragmentFolders.java | 4 ++++ .../java/eu/faircode/email/ServiceSynchronize.java | 14 ++------------ 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentAccounts.java b/app/src/main/java/eu/faircode/email/FragmentAccounts.java index 521a1be916..8191271b41 100644 --- a/app/src/main/java/eu/faircode/email/FragmentAccounts.java +++ b/app/src/main/java/eu/faircode/email/FragmentAccounts.java @@ -52,6 +52,7 @@ import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.google.android.material.snackbar.Snackbar; import java.util.ArrayList; +import java.util.Collections; import java.util.List; public class FragmentAccounts extends FragmentBase { @@ -351,6 +352,10 @@ public class FragmentAccounts extends FragmentBase { // Unified inbox List folders = db.folder().getFoldersUnified(null, true); + + if (folders.size() > 0) + Collections.sort(folders, folders.get(0).getComparator(context)); + for (EntityFolder folder : folders) { EntityOperation.sync(context, folder.id, true); diff --git a/app/src/main/java/eu/faircode/email/FragmentFolders.java b/app/src/main/java/eu/faircode/email/FragmentFolders.java index 8f9f71e806..433dcc7461 100644 --- a/app/src/main/java/eu/faircode/email/FragmentFolders.java +++ b/app/src/main/java/eu/faircode/email/FragmentFolders.java @@ -58,6 +58,7 @@ import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.google.android.material.snackbar.Snackbar; import java.text.NumberFormat; +import java.util.Collections; import java.util.List; import static android.app.Activity.RESULT_OK; @@ -341,6 +342,9 @@ public class FragmentFolders extends FragmentBase { else folders = db.folder().getSynchronizingFolders(aid); + if (folders.size() > 0) + Collections.sort(folders, folders.get(0).getComparator(context)); + for (EntityFolder folder : folders) { EntityOperation.sync(context, folder.id, true); diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 9e10c4404c..fe02419115 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -949,18 +949,8 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences // Open synchronizing folders List folders = db.folder().getFolders(account.id, false, true); - Collections.sort(folders, new Comparator() { - @Override - public int compare(EntityFolder f1, EntityFolder f2) { - int s1 = EntityFolder.FOLDER_SORT_ORDER.indexOf(f1.type); - int s2 = EntityFolder.FOLDER_SORT_ORDER.indexOf(f2.type); - int s = Integer.compare(s1, s2); - if (s != 0) - return s; - - return f1.name.compareTo(f2.name); - } - }); + if (folders.size() > 0) + Collections.sort(folders, folders.get(0).getComparator(ServiceSynchronize.this)); for (final EntityFolder folder : folders) { if (folder.synchronize && !folder.poll && capIdle && sync) {