fetchImages method
Implementation
Future<Map<String, Uint8List>> fetchImages(List<String> urls) async {
if (urls.isEmpty) return {};
if (enableCaching) await _fileCache.clearIfExpired();
final Map<String, Uint8List> imageMap = {};
const uuid = Uuid();
for (var url in urls) {
final source = _source.fetchImage(url);
try {
final key = uuid.v5(Uuid.NAMESPACE_URL, url);
var data =
enableCaching ? await _fileCache.objectFor(key) : imageMap[url];
if (data != null) {
imageMap[url] = data;
continue;
}
final Result result = await _api.getRequest(source: source);
if (result is Error) {
throw Exception("Image API failed: $source");
}
final http.Response response = (result as Success).value;
data = response.bodyBytes;
imageMap[url] = data;
if (enableCaching) _fileCache.setObject(data, key);
} catch (e) {
return imageMap;
}
}
return imageMap;
}