diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardListController.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardListController.kt index 9ae4243c6..2d20557a3 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardListController.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardListController.kt @@ -50,12 +50,20 @@ class HabitCardListController @Inject constructor( if (from == to) return cancelSelection() - val habitFrom = adapter.getItem(from) - val habitTo = adapter.getItem(to) - if (habitFrom == null || habitTo == null) return + val habitFrom = adapter.getHabit(from) + val habitTo = adapter.getHabit(to) + if (habitFrom != null && habitTo != null) { + adapter.performReorder(from, to) + behavior.onReorderHabit(habitFrom, habitTo) + return + } - adapter.performReorder(from, to) - behavior.onReorderHabit(habitFrom, habitTo) + val hgrFrom = adapter.getHabitGroup(from) + val hgrTo = adapter.getHabitGroup(to) + if (hgrFrom != null && hgrTo != null) { + adapter.performReorder(from, to) + behavior.onReorderHabitGroup(hgrFrom, hgrTo) + } } override fun onItemClick(position: Int) { diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehavior.kt b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehavior.kt index ead0d43ef..e80b37647 100644 --- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehavior.kt +++ b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehavior.kt @@ -118,6 +118,10 @@ open class ListHabitsBehavior @Inject constructor( } } + fun onReorderHabitGroup(from: HabitGroup, to: HabitGroup) { + taskRunner.execute { habitGroupList.reorder(from, to) } + } + fun onRepairDB() { taskRunner.execute { habitList.repair()