mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-12-22 08:42:00 +01:00
Use actual indexes instead of existing order number when reordering categories
Fixes #8738
This commit is contained in:
parent
bc6a12a4f7
commit
5f4825465e
@ -28,26 +28,26 @@ class ReorderCategory(
|
|||||||
.filterNot(Category::isSystemCategory)
|
.filterNot(Category::isSystemCategory)
|
||||||
.toMutableList()
|
.toMutableList()
|
||||||
|
|
||||||
val newPosition = when (moveTo) {
|
|
||||||
MoveTo.UP -> category.order - 1
|
|
||||||
MoveTo.DOWN -> category.order + 1
|
|
||||||
}.toInt()
|
|
||||||
|
|
||||||
val currentIndex = categories.indexOfFirst { it.id == category.id }
|
val currentIndex = categories.indexOfFirst { it.id == category.id }
|
||||||
if (currentIndex == newPosition) {
|
if (currentIndex == -1) {
|
||||||
return@withNonCancellableContext Result.Unchanged
|
return@withNonCancellableContext Result.Unchanged
|
||||||
}
|
}
|
||||||
|
|
||||||
Collections.swap(categories, currentIndex, newPosition)
|
val newPosition = when (moveTo) {
|
||||||
|
MoveTo.UP -> currentIndex - 1
|
||||||
val updates = categories.mapIndexed { index, category ->
|
MoveTo.DOWN -> currentIndex + 1
|
||||||
CategoryUpdate(
|
}.toInt()
|
||||||
id = category.id,
|
|
||||||
order = index.toLong(),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
Collections.swap(categories, currentIndex, newPosition)
|
||||||
|
|
||||||
|
val updates = categories.mapIndexed { index, category ->
|
||||||
|
CategoryUpdate(
|
||||||
|
id = category.id,
|
||||||
|
order = index.toLong(),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
categoryRepository.updatePartial(updates)
|
categoryRepository.updatePartial(updates)
|
||||||
Result.Success
|
Result.Success
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
Loading…
Reference in New Issue
Block a user