getImageProvider function
ImageProvider<Object>
getImageProvider({
- required BuildContext context,
- required String url,
- required Size targetSize,
Implementation
ImageProvider getImageProvider({
required BuildContext context,
required String url,
required Size targetSize,
}) {
final controller = SDController.instance;
ImageProvider provider;
SlideAsset? asset;
final firstOrNull = controller.assets.watch(context).firstWhereOrNull;
if (ProjectService.instance.isAssetFile(File(url))) {
asset = firstOrNull((e) => e.file.path == url);
} else {
asset = firstOrNull((e) => e.file.path.contains(shortHashId(url)));
}
url = asset?.file.path ?? url;
// check if its a local path or a network path
if (url.startsWith('http')) {
provider = CachedNetworkImageProvider(url);
} else {
if (kCanRunProcess) {
final file = File(url);
provider = FileImage(file);
} else {
provider = AssetImage(url);
}
}
final (:width, :height) = calculateImageSize(targetSize, asset);
return ResizeImage.resizeIfNeeded(
width,
height,
provider,
);
}