mirror of
https://github.com/M66B/FairEmail.git
synced 2026-03-30 21:58:52 +02:00
Some order
This commit is contained in:
@@ -19,10 +19,16 @@ package eu.faircode.email;
|
||||
Copyright 2018-2019 by Marcel Bokhorst (M66B)
|
||||
*/
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.text.Collator;
|
||||
import java.util.Comparator;
|
||||
import java.util.Locale;
|
||||
import java.util.Objects;
|
||||
|
||||
public class TupleFolderEx extends EntityFolder implements Serializable {
|
||||
public Integer accountOrder;
|
||||
public String accountName;
|
||||
public Integer accountColor;
|
||||
public String accountState;
|
||||
@@ -46,4 +52,40 @@ public class TupleFolderEx extends EntityFolder implements Serializable {
|
||||
} else
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
Comparator getComparator(final Context context) {
|
||||
final Collator collator = Collator.getInstance(Locale.getDefault());
|
||||
collator.setStrength(Collator.SECONDARY); // Case insensitive, process accents etc
|
||||
|
||||
final Comparator base = super.getComparator(context);
|
||||
|
||||
return new Comparator() {
|
||||
@Override
|
||||
public int compare(Object o1, Object o2) {
|
||||
TupleFolderEx f1 = (TupleFolderEx) o1;
|
||||
TupleFolderEx f2 = (TupleFolderEx) o2;
|
||||
|
||||
// Outbox
|
||||
if (f1.accountName == null && f2.accountName == null)
|
||||
return 0;
|
||||
else if (f1.accountName == null)
|
||||
return 1;
|
||||
else if (f2.accountName == null)
|
||||
return -1;
|
||||
|
||||
int o = Integer.compare(
|
||||
f1.accountOrder == null ? -1 : f1.accountOrder,
|
||||
f2.accountOrder == null ? -1 : f2.accountOrder);
|
||||
if (o != 0)
|
||||
return o;
|
||||
|
||||
int a = collator.compare(f1.accountName, f2.accountName);
|
||||
if (a != 0)
|
||||
return a;
|
||||
|
||||
return base.compare(o1, o2);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user