Fix entries of transferred habits and dragging and dropping of groups

pull/2020/head
Dharanish 1 year ago
parent e85f5822b6
commit 0ae5a53594

@ -52,19 +52,19 @@ class HabitCardListController @Inject constructor(
val habitFrom = adapter.getHabit(from)
val habitTo = adapter.getHabit(to)
if (habitFrom != null && habitTo != null) {
if (habitFrom != null) {
if (habitTo != null) {
adapter.performReorder(from, to)
behavior.onReorderHabit(habitFrom, habitTo)
}
return
}
val hgrFrom = adapter.getHabitGroup(from)
val hgrTo = adapter.getHabitGroup(to)
if (hgrFrom != null && hgrTo != null) {
val hgrFrom = adapter.getHabitGroup(from)!!
val hgrTo = adapter.getHabitGroup(to) ?: return
adapter.performReorder(from, to)
behavior.onReorderHabitGroup(hgrFrom, hgrTo)
}
}
override fun onItemClick(position: Int) {
activeMode.onItemClick(position)

@ -28,13 +28,15 @@ data class AddToGroupCommand(
val selected: List<Habit>
) : Command {
override fun run() {
for (h in selected) {
val oldGroup = h.group
(oldGroup?.habitList ?: habitList).remove(h)
h.groupId = hgr.id
h.groupUUID = hgr.uuid
h.group = hgr
hgr.habitList.add(h)
for (habit in selected) {
val entries = habit.originalEntries.getKnown()
val oldGroup = habit.group
(oldGroup?.habitList ?: habitList).remove(habit)
habit.groupId = hgr.id
habit.groupUUID = hgr.uuid
habit.group = hgr
hgr.habitList.add(habit)
entries.forEach { habit.originalEntries.add(it) }
}
}
}

@ -28,11 +28,13 @@ data class RemoveFromGroupCommand(
override fun run() {
for (habit in selected) {
val hgr = habit.group!!
val entries = habit.originalEntries.getKnown()
hgr.habitList.remove(habit)
habit.groupId = null
habit.group = null
habit.groupUUID = null
habitList.add(habit)
entries.forEach { habit.originalEntries.add(it) }
}
}
}

@ -534,7 +534,7 @@ class HabitCardListCache @Inject constructor(
if (!isValidInsert(habitGroup, toPosition)) return
val fromIdx = positionIndices[fromPosition]
val habitList = subHabits[fromIdx]
val toIdx = habitGroups.indexOf(positionToHabitGroup[toPosition]) - (if (fromPosition < toPosition) 1 else 0)
val toIdx = habitGroups.indexOf(positionToHabitGroup[toPosition])
habitGroups.removeAt(fromIdx)
subHabits.removeAt(fromIdx)

Loading…
Cancel
Save