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 ad4f8013e..83b07bf26 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 @@ -288,6 +288,11 @@ public class HabitCardListAdapter cache.reorder(from, to); } + public void dismiss(int position) + { + cache.dismiss(position); + } + @Override public void refresh() { diff --git a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardListController.kt b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardListController.kt index b68f3b24c..d89ab363a 100644 --- a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardListController.kt +++ b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardListController.kt @@ -47,6 +47,10 @@ class HabitCardListController @Inject constructor( adapter.observable.addListener(this) } + override fun onSwiped(position: Int, direction: Int) { + adapter.dismiss(position) + } + override fun drop(from: Int, to: Int) { if (from == to) return cancelSelection() diff --git a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardListView.kt b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardListView.kt index 259d1f14a..8894baf18 100644 --- a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardListView.kt +++ b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardListView.kt @@ -129,6 +129,7 @@ class HabitCardListView( fun drop(from: Int, to: Int) {} fun onItemClick(pos: Int) {} fun onItemLongClick(pos: Int) {} + fun onSwiped(position: Int, direction: Int) {} fun startDrag(position: Int) {} } @@ -164,9 +165,11 @@ class HabitCardListView( override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) { + val position = viewHolder.adapterPosition + controller.get().onSwiped(position, direction) } - override fun isItemViewSwipeEnabled() = false + override fun isItemViewSwipeEnabled() = true override fun isLongPressDragEnabled() = false } } diff --git a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/list/HabitCardListCache.java b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/list/HabitCardListCache.java index 27c8ecdda..c2fcb9f6e 100644 --- a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/list/HabitCardListCache.java +++ b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/screens/habits/list/HabitCardListCache.java @@ -179,6 +179,12 @@ public class HabitCardListCache implements CommandRunner.Listener listener.onItemMoved(from, to); } + public synchronized void dismiss(int position) + { + Habit habit = data.habits.get(position); + habit.dismiss(); + } + public synchronized void setCheckmarkCount(int checkmarkCount) { this.checkmarkCount = checkmarkCount;