Display navigation folders on accounts start screen

This commit is contained in:
M66B
2024-02-15 19:50:57 +01:00
parent 7916ff1bac
commit 90baa403e7
7 changed files with 293 additions and 268 deletions

View File

@@ -311,66 +311,8 @@ public class AdapterNavAccountFolder extends RecyclerView.Adapter<AdapterNavAcco
public void set(@NonNull List<TupleAccountFolder> accounts, boolean expanded, boolean folders) {
Log.i("Set nav accounts=" + accounts.size());
if (accounts.size() > 0) {
final Collator collator = Collator.getInstance(Locale.getDefault());
collator.setStrength(Collator.SECONDARY); // Case insensitive, process accents etc
Collections.sort(accounts, new Comparator<TupleAccountFolder>() {
@Override
public int compare(TupleAccountFolder a1, TupleAccountFolder a2) {
// Account
if (nav_categories) {
int c = collator.compare(
a1.category == null ? "" : a1.category,
a2.category == null ? "" : a2.category);
if (c != 0)
return c;
}
int a = Integer.compare(
a1.order == null ? -1 : a1.order,
a2.order == null ? -1 : a2.order);
if (a != 0)
return a;
int p = -Boolean.compare(a1.primary, a2.primary);
if (p != 0)
return p;
int n = collator.compare(a1.name, a2.name);
if (n != 0)
return n;
// Folder
int o = Integer.compare(
a1.folderOrder == null ? -1 : a1.folderOrder,
a2.folderOrder == null ? -1 : a2.folderOrder);
if (o != 0)
return o;
int t1 = EntityFolder.FOLDER_SORT_ORDER.indexOf(a1.folderType);
int t2 = EntityFolder.FOLDER_SORT_ORDER.indexOf(a2.folderType);
int t = Integer.compare(t1, t2);
if (t != 0)
return t;
int s = -Boolean.compare(a1.folderSync, a2.folderSync);
if (s != 0)
return s;
if (a1.folderName == null && a2.folderName == null)
return 0;
else if (a1.folderName == null)
return -1;
else if (a2.folderName == null)
return 1;
return collator.compare(a1.getName(context), a2.getName(context));
}
});
}
if (accounts.size() > 0)
TupleAccountFolder.sort(accounts, nav_categories, context);
all = accounts;
if (!folders) {