|
@@ -28,26 +28,26 @@ class ReorderCategory(
|
|
|
.filterNot(Category::isSystemCategory)
|
|
|
.toMutableList()
|
|
|
|
|
|
- val newPosition = when (moveTo) {
|
|
|
- MoveTo.UP -> category.order - 1
|
|
|
- MoveTo.DOWN -> category.order + 1
|
|
|
- }.toInt()
|
|
|
-
|
|
|
val currentIndex = categories.indexOfFirst { it.id == category.id }
|
|
|
- if (currentIndex == newPosition) {
|
|
|
+ if (currentIndex == -1) {
|
|
|
return@withNonCancellableContext Result.Unchanged
|
|
|
}
|
|
|
|
|
|
- Collections.swap(categories, currentIndex, newPosition)
|
|
|
-
|
|
|
- val updates = categories.mapIndexed { index, category ->
|
|
|
- CategoryUpdate(
|
|
|
- id = category.id,
|
|
|
- order = index.toLong(),
|
|
|
- )
|
|
|
- }
|
|
|
+ val newPosition = when (moveTo) {
|
|
|
+ MoveTo.UP -> currentIndex - 1
|
|
|
+ MoveTo.DOWN -> currentIndex + 1
|
|
|
+ }.toInt()
|
|
|
|
|
|
try {
|
|
|
+ Collections.swap(categories, currentIndex, newPosition)
|
|
|
+
|
|
|
+ val updates = categories.mapIndexed { index, category ->
|
|
|
+ CategoryUpdate(
|
|
|
+ id = category.id,
|
|
|
+ order = index.toLong(),
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
categoryRepository.updatePartial(updates)
|
|
|
Result.Success
|
|
|
} catch (e: Exception) {
|