resolveModes static method
Implementation
static ConnectionResolution resolveModes(List<ConnectivityResult> results) {
if (results.isEmpty ||
(results.length == 1 && results.first == ConnectivityResult.none)) {
return const ConnectionResolution(
primary: ConnectionMode.none,
active: [ConnectionMode.none],
);
}
final activeModes = results
.where((r) => r != ConnectivityResult.none)
.map(mapResult)
.toSet()
.toList();
if (activeModes.isEmpty) {
return const ConnectionResolution(
primary: ConnectionMode.none,
active: [ConnectionMode.none],
);
}
ConnectionMode primary;
if (activeModes.contains(ConnectionMode.ethernet)) {
primary = ConnectionMode.ethernet;
} else if (activeModes.contains(ConnectionMode.wifi)) {
primary = ConnectionMode.wifi;
} else if (activeModes.contains(ConnectionMode.mobile)) {
primary = ConnectionMode.mobile;
} else if (activeModes.contains(ConnectionMode.vpn)) {
primary = ConnectionMode.vpn;
} else if (activeModes.contains(ConnectionMode.bluetooth)) {
primary = ConnectionMode.bluetooth;
} else {
primary = activeModes.first;
}
return ConnectionResolution(primary: primary, active: activeModes);
}