listSaves function
Implementation
Future<List<SaveData>> listSaves(String savePath) async {
final savesDir =
Directory('${(await getApplicationDocumentsDirectory()).path}$savePath');
if (!await savesDir.exists()) return [];
final saves = <SaveData>[];
await for (final save in savesDir.list()) {
if (save is File) {
try {
final data = jsonDecode(await save.readAsString());
final String sceneId = data['scene_id'];
final String description = data['description'];
final Map<String, dynamic> state = data['state'];
final DateTime createdAt = (await save.stat()).changed;
saves.add(SaveData(
sceneId: sceneId,
description: description,
createdAt: createdAt,
state: state));
} catch (e) {
continue;
}
}
}
return saves..sort((a, b) => b.createdAt.compareTo(a.createdAt));
}