merge static method
Highest accuracy, shortest interval, smallest distance, loosest filters, and background if any listener asked for it (the first one's notification).
Implementation
static StreamRequest merge(
Iterable<StreamRequest> requests, {
bool reportFiltered = false,
}) {
final list = requests.toList();
return StreamRequest(
accuracy: list
.map((r) => r.accuracy)
.reduce((a, b) => a.index >= b.index ? a : b),
interval: list.map((r) => r.interval).reduce((a, b) => a <= b ? a : b),
distanceFilter: list
.map((r) => r.distanceFilter)
.reduce((a, b) => a <= b ? a : b),
filters: PositionFilters.mostPermissive(list.map((r) => r.filters)),
reportFiltered: reportFiltered,
background: list
.map((r) => r.background)
.firstWhere((b) => b != null, orElse: () => null),
);
}