importData method
Implementation
Future<void> importData(Map<String, dynamic> data) async {
try {
_stateSubject.add(currentState.copyWith(isLoading: true));
final version = data['version'] as String?;
if (version == null) {
throw StorageException('Datos de importación inválidos: sin versión');
}
if (data.containsKey('auth')) {
await auth.import(data['auth'] as Map<String, dynamic>);
}
if (data.containsKey('secure')) {
final secureData = data['secure'] as Map<String, dynamic>;
for (var entry in secureData.entries) {
await secure.write(entry.key, entry.value);
}
}
if (data.containsKey('prefs')) {
final prefsData = data['prefs'] as Map<String, dynamic>;
for (var entry in prefsData.entries) {
await prefs.write(entry.key, entry.value);
}
}
_stateSubject.add(currentState.copyWith(
isLoading: false,
lastImportedAt: DateTime.now(),
));
} catch (e) {
_stateSubject.add(currentState.copyWith(
error: 'Error importando datos: $e',
isLoading: false,
));
rethrow;
}
}