import 'dart:convert'; import 'package:shared_preferences/shared_preferences.dart'; import 'connection.dart'; const _connectionsKey = 'connections'; const _activeConnectionIdKey = 'active_connection_id'; /// Reads/writes the saved connection list and active-connection id to /// [SharedPreferences] as a plain JSON-encoded array. Not a secret store — /// the API has no auth, so there's nothing sensitive in a saved base URL. class ConnectionStorage { const ConnectionStorage(this._prefs); final SharedPreferences _prefs; List readConnections() { final raw = _prefs.getString(_connectionsKey); if (raw == null || raw.isEmpty) return const []; final decoded = jsonDecode(raw) as List; return decoded .map((e) => Connection.fromJson(e as Map)) .toList(growable: false); } Future writeConnections(List connections) async { final encoded = jsonEncode(connections.map((c) => c.toJson()).toList()); await _prefs.setString(_connectionsKey, encoded); } String? readActiveConnectionId() => _prefs.getString(_activeConnectionIdKey); Future writeActiveConnectionId(String? id) async { if (id == null) { await _prefs.remove(_activeConnectionIdKey); } else { await _prefs.setString(_activeConnectionIdKey, id); } } }