refactor: remove redundant server enabling

This commit is contained in:
edde746
2025-12-15 05:45:38 +01:00
parent 3c89d0eba8
commit 79ac2793e3
4 changed files with 5 additions and 103 deletions
+3 -3
View File
@@ -344,8 +344,8 @@ class _SetupScreenState extends State<SetupScreen> {
// Migrate from single-server to multi-server if needed
await registry.migrateFromSingleServer();
// Load enabled servers
final servers = await registry.getEnabledServers();
// Load all configured servers
final servers = await registry.getServers();
if (servers.isEmpty) {
// No servers configured - show auth screen
@@ -360,7 +360,7 @@ class _SetupScreenState extends State<SetupScreen> {
final multiServerProvider = Provider.of<MultiServerProvider>(context, listen: false);
try {
appLogger.i('Connecting to ${servers.length} enabled servers...');
appLogger.i('Connecting to ${servers.length} servers...');
// Get or generate client identifier
final clientId = storage.getClientIdentifier();
+1 -5
View File
@@ -66,14 +66,10 @@ class _AuthScreenState extends State<AuthScreen> {
return;
}
// Save all servers to registry and enable them
// Save all servers to registry (all servers are considered enabled)
final registry = ServerRegistry(storage);
await registry.saveServers(servers);
// Enable all servers
final serverIds = servers.map((s) => s.clientIdentifier).toSet();
await registry.saveEnabledServerIds(serverIds);
// Connect to all servers
if (!mounted) return;
final multiServerProvider = context.read<MultiServerProvider>();
+1 -78
View File
@@ -5,7 +5,7 @@ import 'plex_auth_service.dart';
import 'storage_service.dart';
/// Centralized server configuration registry
/// Manages which servers are available, enabled/disabled, and their configurations
/// Manages which servers are available and their configurations
class ServerRegistry {
final StorageService _storage;
@@ -39,71 +39,6 @@ class ServerRegistry {
}
}
/// Get enabled server IDs
Future<Set<String>> getEnabledServerIds() async {
try {
final enabledJson = _storage.getEnabledServersJson();
if (enabledJson == null || enabledJson.isEmpty) {
// If no enabled servers are stored, all servers are enabled by default
final servers = await getServers();
return servers.map((s) => s.clientIdentifier).toSet();
}
final List<dynamic> enabledList = jsonDecode(enabledJson);
return enabledList.cast<String>().toSet();
} catch (e, stackTrace) {
appLogger.e('Failed to load enabled servers from storage', error: e, stackTrace: stackTrace);
return {};
}
}
/// Save enabled server IDs
Future<void> saveEnabledServerIds(Set<String> serverIds) async {
try {
final enabledJson = jsonEncode(serverIds.toList());
await _storage.saveEnabledServersJson(enabledJson);
appLogger.d('Saved ${serverIds.length} enabled servers to storage');
} catch (e, stackTrace) {
appLogger.e('Failed to save enabled servers to storage', error: e, stackTrace: stackTrace);
rethrow;
}
}
/// Get only enabled servers
Future<List<PlexServer>> getEnabledServers() async {
final servers = await getServers();
final enabledIds = await getEnabledServerIds();
if (enabledIds.isEmpty) {
// If no enabled list, all servers are enabled
return servers;
}
return servers.where((s) => enabledIds.contains(s.clientIdentifier)).toList();
}
/// Enable a server
Future<void> enableServer(String serverId) async {
final enabledIds = await getEnabledServerIds();
enabledIds.add(serverId);
await saveEnabledServerIds(enabledIds);
appLogger.i('Enabled server: $serverId');
}
/// Disable a server
Future<void> disableServer(String serverId) async {
final enabledIds = await getEnabledServerIds();
enabledIds.remove(serverId);
await saveEnabledServerIds(enabledIds);
appLogger.i('Disabled server: $serverId');
}
/// Check if a server is enabled
Future<bool> isServerEnabled(String serverId) async {
final enabledIds = await getEnabledServerIds();
return enabledIds.contains(serverId);
}
/// Get a specific server by ID
Future<PlexServer?> getServer(String serverId) async {
final servers = await getServers();
@@ -143,11 +78,6 @@ class ServerRegistry {
}
await saveServers(servers);
// Ensure new servers are enabled by default
if (index < 0) {
await enableServer(server.clientIdentifier);
}
}
/// Remove a server
@@ -156,18 +86,12 @@ class ServerRegistry {
servers.removeWhere((s) => s.clientIdentifier == serverId);
await saveServers(servers);
// Also remove from enabled list
final enabledIds = await getEnabledServerIds();
enabledIds.remove(serverId);
await saveEnabledServerIds(enabledIds);
appLogger.i('Removed server: $serverId');
}
/// Clear all servers
Future<void> clearAllServers() async {
await _storage.clearServersList();
await _storage.clearEnabledServers();
appLogger.i('Cleared all servers from registry');
}
@@ -196,7 +120,6 @@ class ServerRegistry {
// Save as first server in new format
await saveServers([server]);
await enableServer(server.clientIdentifier);
appLogger.i('Migration complete');
} catch (e, stackTrace) {
-17
View File
@@ -19,7 +19,6 @@ class StorageService extends BaseSharedPreferencesService {
static const String _keyHomeUsersCacheExpiry = 'home_users_cache_expiry';
static const String _keyHiddenLibraries = 'hidden_libraries';
static const String _keyServersList = 'servers_list';
static const String _keyEnabledServers = 'enabled_servers';
static const String _keyServerOrder = 'server_order';
// Key prefixes for per-id storage
@@ -329,31 +328,15 @@ class StorageService extends BaseSharedPreferencesService {
await prefs.setString(_keyServersList, serversJson);
}
/// Get enabled servers as JSON string
String? getEnabledServersJson() {
return prefs.getString(_keyEnabledServers);
}
/// Save enabled servers as JSON string
Future<void> saveEnabledServersJson(String enabledJson) async {
await prefs.setString(_keyEnabledServers, enabledJson);
}
/// Clear servers list
Future<void> clearServersList() async {
await prefs.remove(_keyServersList);
}
/// Clear enabled servers
Future<void> clearEnabledServers() async {
await prefs.remove(_keyEnabledServers);
}
/// Clear all multi-server data
Future<void> clearMultiServerData() async {
await Future.wait([
clearServersList(),
clearEnabledServers(),
clearServerOrder(),
_clearKeysWithPrefix(_prefixServerEndpoint),
]);