refactor: remove redundant server enabling
This commit is contained in:
+3
-3
@@ -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();
|
||||
|
||||
@@ -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>();
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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),
|
||||
]);
|
||||
|
||||
Reference in New Issue
Block a user