loadConfig method
Loads configuration from secure storage.
Automatically migrates from legacy YAML format if found.
Implementation
Future<SpectraConfig> loadConfig() async {
// Check if secure storage has data
if (_secureStorage.hasData) {
final secureData = await _secureStorage.retrieve();
return SpectraConfig.fromMap(secureData);
}
// Try to load from legacy YAML file
final file = _legacyConfigFile;
if (file.existsSync()) {
try {
final content = await file.readAsString();
final yaml = loadYaml(content);
if (yaml is Map) {
final config = SpectraConfig.fromYaml(yaml);
// Migrate to secure storage
await _migrateToSecureStorage(config);
// Delete legacy file
await file.delete();
return config;
}
} catch (e) {
// If loading fails, return empty config
}
}
return SpectraConfig();
}