saveImage function
Future<SaveImageResult>
saveImage({
- required String imageUrl,
- required ImageSaverService imageSaverService,
Implementation
Future<SaveImageResult> saveImage({
required String imageUrl,
required ImageSaverService imageSaverService,
}) async {
final imageFile = File(imageUrl);
final hasPermission = await imageSaverService.hasAccess();
if (!hasPermission) {
await imageSaverService.requestAccess();
}
final imageExistsLocally = await imageFile.exists();
if (!imageExistsLocally) {
try {
await imageSaverService.saveImageFromNetwork(
Uri.parse(appendFileExtensionToImageUrl(imageUrl)),
);
return const SaveImageResult(
error: null,
method: SaveImageResultMethod.network,
);
} catch (e) {
return SaveImageResult(
error: e.toString(),
method: SaveImageResultMethod.network,
);
}
}
try {
await imageSaverService.saveLocalImage(imageUrl);
return const SaveImageResult(
error: null,
method: SaveImageResultMethod.localStorage,
);
} catch (e) {
return SaveImageResult(
error: e.toString(),
method: SaveImageResultMethod.localStorage,
);
}
}