calculateNewSortOrder<T extends Sortable> static method
double
calculateNewSortOrder<T extends Sortable>(
- List<
T> items, - int oldIndex,
- int newIndex,
- SortOrderType sortOrderType,
Implementation
static double calculateNewSortOrder<T extends Sortable>(
List<T> items, int oldIndex, int newIndex, SortOrderType sortOrderType) {
double newSortOrder;
//TODO: This might be necessary only because of the Flutter reorderable list.
// if (newIndex > oldIndex) {
// newIndex -= 1;
// }
if (oldIndex < newIndex) {
// Moving down the list.
double nextSortOrder = newIndex + 1 < items.length
? items[newIndex + 1].sortOrder
: items[newIndex].sortOrder + 1;
newSortOrder = (items[newIndex].sortOrder + nextSortOrder) / 2;
} else {
// Moving up the list.
double previousSortOrder =
newIndex - 1 >= 0 ? items[newIndex - 1].sortOrder : items[newIndex].sortOrder - 1;
newSortOrder = (items[newIndex].sortOrder + previousSortOrder) / 2;
}
return newSortOrder;
}