select method
Selects an environment by name. null goes back to the app default.
Implementation
Future<void> select(String? name) async {
if (name != null && !names.contains(name)) {
throw ArgumentError.value(name, 'name', 'Unknown environment');
}
await ready;
if (name == selected) return;
_selected = name;
notifyListeners();
onChanged?.call(name);
try {
final prefs = await SharedPreferences.getInstance();
if (name == null) {
await prefs.remove(storageKey);
} else {
await prefs.setString(storageKey, name);
}
} catch (e) {
_log('could not save environment: $e');
}
}