getNewRanges function
Normalizes ranges by sorting and merging overlapping or adjacent ones.
Returns a new normalized list with the merged values.
Returns null if the new ranges do not change the existing ones.
Implementation
Ranges? getNewRanges(
Ranges ranges,
Ranges newRanges,
) {
if (newRanges.isEmpty) {
return null;
}
if (ranges.isEmpty) {
return newRanges;
}
final combinedRanges = normalizeRanges([...ranges, ...newRanges]);
if (combinedRanges.length != ranges.length) {
return combinedRanges;
}
for (var i = 0; i < ranges.length; i++) {
if (ranges[i] != combinedRanges[i]) {
return combinedRanges;
}
}
return null;
}