file method
The asset's file, downloading from iCloud if necessary.
onProgress reports 0..1 for that download; cancelToken abandons it.
Implementation
@override
Future<File?> file(
String id, {
void Function(double)? onProgress,
TransformCancelToken? cancelToken,
}) {
if (failingFiles.contains(id)) {
return Future<File?>.error(
const TransformException(
TransformFailure.sourceUnreadable,
'FakeAssetSource was told to fail this asset.',
),
);
}
if (missingFiles.contains(id)) {
onProgress?.call(1);
return Future<File?>.value();
}
final File? registered = filesById[id];
if (registered != null) {
onProgress?.call(1);
return Future<File?>.value(registered);
}
if (pendingFiles.contains(id)) {
final Completer<File?> completer = Completer<File?>();
_pending[id] = completer;
if (onProgress != null) {
_progressSinks[id] = onProgress;
}
return completer.future;
}
onProgress?.call(1);
return Future<File?>.value(File('/fake/$id'));
}