aboutsummaryrefslogtreecommitdiffstats
path: root/main/src
diff options
context:
space:
mode:
authorBananeweizen <Bananeweizen@gmx.de>2013-03-27 09:45:57 +0100
committerBananeweizen <Bananeweizen@gmx.de>2013-03-27 09:45:57 +0100
commit019567e6a81f09542d3331f9856c82bc043bcffe (patch)
tree9ac4385f71c21d2b6e30bb0a93f6ba95716a4ea7 /main/src
parent678280b752547c8dc392bb6e5dfcadcfd550ee50 (diff)
downloadcgeo-019567e6a81f09542d3331f9856c82bc043bcffe.zip
cgeo-019567e6a81f09542d3331f9856c82bc043bcffe.tar.gz
cgeo-019567e6a81f09542d3331f9856c82bc043bcffe.tar.bz2
#2593: wrong inverse sorting in history and other lists
Diffstat (limited to 'main/src')
-rw-r--r--main/src/cgeo/geocaching/cgeocaches.java11
-rw-r--r--main/src/cgeo/geocaching/ui/CacheListAdapter.java16
2 files changed, 18 insertions, 9 deletions
diff --git a/main/src/cgeo/geocaching/cgeocaches.java b/main/src/cgeo/geocaching/cgeocaches.java
index 00c10d0..d29b924 100644
--- a/main/src/cgeo/geocaching/cgeocaches.java
+++ b/main/src/cgeo/geocaching/cgeocaches.java
@@ -749,9 +749,18 @@ public class cgeocaches extends AbstractListActivity implements FilteredActivity
showFilterMenu(null);
return true;
case MENU_SORT:
- new ComparatorUserInterface(this).selectComparator(adapter.getCacheComparator(), new RunnableWithArgument<CacheComparator>() {
+ final CacheComparator oldComparator = adapter.getCacheComparator();
+ new ComparatorUserInterface(this).selectComparator(oldComparator, new RunnableWithArgument<CacheComparator>() {
@Override
public void run(CacheComparator selectedComparator) {
+ // selecting the same sorting twice will toggle the order
+ if (selectedComparator != null && oldComparator != null && selectedComparator.getClass().equals(oldComparator.getClass())) {
+ adapter.toggleInverseSort();
+ }
+ else {
+ // always reset the inversion for a new sorting criteria
+ adapter.resetInverseSort();
+ }
setComparator(selectedComparator);
}
});
diff --git a/main/src/cgeo/geocaching/ui/CacheListAdapter.java b/main/src/cgeo/geocaching/ui/CacheListAdapter.java
index 41e27a6..4965e0b 100644
--- a/main/src/cgeo/geocaching/ui/CacheListAdapter.java
+++ b/main/src/cgeo/geocaching/ui/CacheListAdapter.java
@@ -152,18 +152,18 @@ public class CacheListAdapter extends ArrayAdapter<Geocache> {
* @param comparator
*/
public void setComparator(final CacheComparator comparator) {
- // selecting the same sorting twice will toggle the order
- if (cacheComparator != null && comparator != null && cacheComparator.getClass().equals(comparator.getClass())) {
- inverseSort = !inverseSort;
- }
- else {
- // always reset the inversion for a new sorting criteria
- inverseSort = false;
- }
cacheComparator = comparator;
forceSort();
}
+ public void resetInverseSort() {
+ inverseSort = false;
+ }
+
+ public void toggleInverseSort() {
+ inverseSort = !inverseSort;
+ }
+
public CacheComparator getCacheComparator() {
return cacheComparator;
}