updateAll method
Implementation
bool updateAll(final Iterable<E> newItems) {
try {
bool changed = false;
final currSize = this._items.length;
final newList = newItems.toList();
var i = 0;
for (; i < newItems.length; i++) {
final newItem = newList[i];
if (_items.length > i) {
final existingItem = _items[i];
if (existingItem != newItem) {
changed = true;
removeAt(i);
insert(i, newItem);
}
} else {
changed = true;
insert(_items.length, newItem);
}
}
final trimSize = currSize - i;
if (trimSize > 0) {
Iterable.generate(trimSize).forEach((_) => removeLast());
changed = true;
}
return changed;
} catch (e) {
log.info("Error updating list state: $e");
rethrow;
}
}