getNextProxy method
Gets the next proxy from the internal list
Implementation
@override
Proxy? getNextProxy() {
if (_proxies.isEmpty) {
return null;
}
// Sort proxies by last used timestamp (ascending)
final sortedProxies = List<Proxy>.from(_proxies)..sort((a, b) {
final aKey = '${a.ip}:${a.port}';
final bKey = '${b.ip}:${b.port}';
final aLastUsed = _lastUsedMap[aKey] ?? 0;
final bLastUsed = _lastUsedMap[bKey] ?? 0;
return aLastUsed.compareTo(bLastUsed);
});
final proxy = sortedProxies.first;
final proxyKey = '${proxy.ip}:${proxy.port}';
_lastUsedMap[proxyKey] = DateTime.now().millisecondsSinceEpoch;
return proxy;
}