From a54a5f46cea81cc74c6563316567d901dbbc5794 Mon Sep 17 00:00:00 2001 From: Quentin Hibon Date: Wed, 18 Nov 2020 17:18:23 +0100 Subject: [PATCH] fix missing previous order assignments --- .../habits/list/views/HabitCardListAdapter.java | 6 +----- .../core/models/memory/MemoryHabitList.java | 5 +++-- .../uhabits/core/preferences/Preferences.java | 14 ++++++++++++++ .../habits/list/ListHabitsMenuBehavior.java | 2 -- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardListAdapter.java b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardListAdapter.java index b461368c3..d6797799c 100644 --- a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardListAdapter.java +++ b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardListAdapter.java @@ -83,6 +83,7 @@ public class HabitCardListAdapter cache.setListener(this); cache.setCheckmarkCount( ListHabitsRootViewKt.MAX_CHECKMARK_COUNT); + cache.setPreviousOrder(preferences.getDefaultPreviousOrder()); cache.setOrder(preferences.getDefaultOrder()); setHasStableIds(true); @@ -331,11 +332,6 @@ public class HabitCardListAdapter return cache.getOrder(); } - @Override - public HabitList.Order getPreviousOrder() { - return cache.getPreviousOrder(); - } - /** * Selects or deselects the item at a given position. * diff --git a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/models/memory/MemoryHabitList.java b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/models/memory/MemoryHabitList.java index 26ee25663..b70ea7fe5 100644 --- a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/models/memory/MemoryHabitList.java +++ b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/models/memory/MemoryHabitList.java @@ -59,6 +59,7 @@ public class MemoryHabitList extends HabitList this.parent = parent; this.comparator = comparator; this.order = parent.order; + this.previousOrder = parent.previousOrder; parent.getObservable().addListener(this::loadFromParent); loadFromParent(); } @@ -155,10 +156,10 @@ public class MemoryHabitList extends HabitList h1.getName().compareTo(h2.getName()); Comparator nameComparatorDesc = (h1, h2) -> - nameComparatorAsc.compare(h2, h1); + nameComparatorAsc.compare(h2, h1); Comparator colorComparatorAsc = (h1, h2) -> - h1.getColor().compareTo(h2.getColor()); + h1.getColor().compareTo(h2.getColor()); Comparator colorComparatorDesc = (h1, h2) -> colorComparatorAsc.compare(h2, h1); diff --git a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/preferences/Preferences.java b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/preferences/Preferences.java index 26da634c8..cdac04aad 100644 --- a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/preferences/Preferences.java +++ b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/preferences/Preferences.java @@ -75,6 +75,20 @@ public class Preferences } } + public HabitList.Order getDefaultPreviousOrder() { + String name = storage.getString("pref_default_previous_order", "BY_POSITION"); + + try + { + return HabitList.Order.valueOf(name); + } + catch (IllegalArgumentException e) + { + setDefaultPreviousOrder(HabitList.Order.BY_POSITION); + return HabitList.Order.BY_POSITION; + } + } + public void setDefaultOrder(HabitList.Order order) { storage.putString("pref_default_order", order.name()); diff --git a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsMenuBehavior.java b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsMenuBehavior.java index 696234bc1..f1e6052f3 100644 --- a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsMenuBehavior.java +++ b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsMenuBehavior.java @@ -160,8 +160,6 @@ public class ListHabitsMenuBehavior void setPreviousOrder(HabitList.Order order); HabitList.Order getOrder(); - - HabitList.Order getPreviousOrder(); } public interface Screen