From 3fb9b269af69f1b2159f79c205ad0be2305850fb Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 4 Mar 2019 07:48:36 +0000 Subject: [PATCH] Folder menu sort order --- .../main/java/eu/faircode/email/AdapterFolder.java | 2 +- .../main/java/eu/faircode/email/AdapterMessage.java | 4 ++-- .../main/java/eu/faircode/email/EntityFolder.java | 12 ++++++++---- .../main/java/eu/faircode/email/FragmentAccount.java | 4 ++-- .../java/eu/faircode/email/FragmentMessages.java | 2 +- .../main/java/eu/faircode/email/FragmentRule.java | 2 +- 6 files changed, 15 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/AdapterFolder.java b/app/src/main/java/eu/faircode/email/AdapterFolder.java index ec2e6634fd..ee2ece6fe2 100644 --- a/app/src/main/java/eu/faircode/email/AdapterFolder.java +++ b/app/src/main/java/eu/faircode/email/AdapterFolder.java @@ -436,7 +436,7 @@ public class AdapterFolder extends RecyclerView.Adapter folders = new ArrayList<>(); folders.addAll(_folders); - EntityFolder.sort(context, folders); + EntityFolder.sort(context, folders, false); all.clear(); for (EntityFolder folder : folders) diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 3e8452e2b7..cbd0ae538c 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -1825,7 +1825,7 @@ public class AdapterMessage extends RecyclerView.Adapter folders) { + static void sort(final Context context, List folders, final boolean menu) { final Collator collator = Collator.getInstance(Locale.getDefault()); collator.setStrength(Collator.SECONDARY); // Case insensitive, process accents etc @@ -345,9 +345,13 @@ public class EntityFolder implements Serializable { int s = Integer.compare(i1, i2); if (s != 0) return s; - int c = -f1.synchronize.compareTo(f2.synchronize); - if (c != 0) - return c; + + if (!menu) { + int c = -f1.synchronize.compareTo(f2.synchronize); + if (c != 0) + return c; + } + String name1 = f1.getDisplayName(context); String name2 = f2.getDisplayName(context); return collator.compare(name1, name2); diff --git a/app/src/main/java/eu/faircode/email/FragmentAccount.java b/app/src/main/java/eu/faircode/email/FragmentAccount.java index 070b0118b5..93290fc231 100644 --- a/app/src/main/java/eu/faircode/email/FragmentAccount.java +++ b/app/src/main/java/eu/faircode/email/FragmentAccount.java @@ -674,7 +674,7 @@ public class FragmentAccount extends FragmentBase { for (EntityFolder folder : result.folders) folder.display = folder.getDisplayName(getContext()); - EntityFolder.sort(getContext(), result.folders); + EntityFolder.sort(getContext(), result.folders, true); } @@ -1208,7 +1208,7 @@ public class FragmentAccount extends FragmentBase { if (folders != null) { for (EntityFolder folder : folders) folder.display = folder.getDisplayName(getContext()); - EntityFolder.sort(getContext(), folders); + EntityFolder.sort(getContext(), folders, true); } return folders; diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 7c6dc97ba0..031f302555 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -997,7 +997,7 @@ public class FragmentMessages extends FragmentBase { !EntityFolder.JUNK.equals(target.type) && (fids.size() != 1 || !fids.contains(target.id))) targets.add(target); - EntityFolder.sort(context, targets); + EntityFolder.sort(context, targets, true); result.targets.put(account, targets); } diff --git a/app/src/main/java/eu/faircode/email/FragmentRule.java b/app/src/main/java/eu/faircode/email/FragmentRule.java index ea936095e0..1fa0f8299d 100644 --- a/app/src/main/java/eu/faircode/email/FragmentRule.java +++ b/app/src/main/java/eu/faircode/email/FragmentRule.java @@ -256,7 +256,7 @@ public class FragmentRule extends FragmentBase { for (EntityFolder folder : data.folders) folder.display = folder.getDisplayName(context); - EntityFolder.sort(context, data.folders); + EntityFolder.sort(context, data.folders, true); data.identities = db.identity().getIdentities(aid); data.answers = db.answer().getAnswers();