diff --git a/briar-android/src/org/briarproject/android/identity/LocalAuthorItemComparator.java b/briar-android/src/org/briarproject/android/identity/LocalAuthorItemComparator.java index 349e539897eb81d8c5bc229e2ed630922ecd1fe8..1b37470d6f9df9312631e1b630541f48a240ef27 100644 --- a/briar-android/src/org/briarproject/android/identity/LocalAuthorItemComparator.java +++ b/briar-android/src/org/briarproject/android/identity/LocalAuthorItemComparator.java @@ -12,10 +12,17 @@ public class LocalAuthorItemComparator implements Comparator<LocalAuthorItem> { public int compare(LocalAuthorItem a, LocalAuthorItem b) { if(a == b) return 0; - if(a == ANONYMOUS || b == NEW) return -1; - if(a == NEW || b == ANONYMOUS) return 1; - String aName = a.getLocalAuthor().getName(); - String bName = b.getLocalAuthor().getName(); - return String.CASE_INSENSITIVE_ORDER.compare(aName, bName); + // NEW comes after everything else + if(a == NEW) return 1; + if(b == NEW) return -1; + // ANONYMOUS comes after everything else except NEW + if(a == ANONYMOUS) return 1; + if(b == ANONYMOUS) return -1; + // Sort items in order of creation, so the oldest item is the default + long aCreated = a.getLocalAuthor().getTimeCreated(); + long bCreated = b.getLocalAuthor().getTimeCreated(); + if(aCreated < bCreated) return -1; + if(aCreated > bCreated) return 1; + return 0; } } diff --git a/briar-android/src/org/briarproject/android/identity/LocalAuthorSpinnerAdapter.java b/briar-android/src/org/briarproject/android/identity/LocalAuthorSpinnerAdapter.java index bed42c379b58ca50f5693a57107026ddd84e6801..57a8e019aa0e80222cc3e4231c6edce3e3fab0c2 100644 --- a/briar-android/src/org/briarproject/android/identity/LocalAuthorSpinnerAdapter.java +++ b/briar-android/src/org/briarproject/android/identity/LocalAuthorSpinnerAdapter.java @@ -62,9 +62,9 @@ implements SpinnerAdapter { public LocalAuthorItem getItem(int position) { if(includeAnonymous) { - if(position == 0) return ANONYMOUS; + if(position == list.size()) return ANONYMOUS; if(position == list.size() + 1) return NEW; - return list.get(position - 1); + return list.get(position); } else { if(position == list.size()) return NEW; return list.get(position);