fetchSavedBridges static method
Fetch all of the bridges already saved to the user's device.
If the bridges are not saved to the default folder location, provide their
location with directory.
Implementation
static Future<List<Bridge>> fetchSavedBridges([Directory? directory]) async {
List<Bridge> bridges = [];
if (kIsWeb) {
// cookies instead of local storage (not yet implemented)
} else {
final Directory dir = directory ??
Directory(
await MyFileExplorerSDK.createPath(
localDir: LocalDir.appSupportDir,
subPath: Folders.bridgesSubPath,
),
);
/// Create the directory if it does not exist.
if (!dir.existsSync()) {
dir.createSync(recursive: true);
return [];
}
// Get the bridge files from the directory.
final List<FileSystemEntity> entities = await dir.list().toList();
final List<File> bridgeFiles = entities
.whereType<File>()
.where((file) =>
MyFileExplorerSDK.tryParseFileExt(file.path)?.toLowerCase() ==
".json")
.toList();
/// Parse the bridge files into [Bridge] objects.
for (File bridgeFile in bridgeFiles) {
String fileContents = bridgeFile.readAsStringSync();
Map<String, dynamic> bridgeJson = JsonTool.readJson(fileContents);
bridges.add(Bridge.fromJson(bridgeJson));
}
}
return bridges;
}