resolveImage method
Resolves and returns an appropriate image widget from:
- Picked File (XFile)
- Network Image
- Asset Image Falls back to error widget if all fail.
Implementation
Widget resolveImage({
XFile? pickedFile,
String? imageSource,
double? scale,
BoxFit? fit,
double? width,
double? height,
Widget? placeholder,
Widget? errorWidget,
}) {
try {
if (_isPickedFileValid(pickedFile)) {
return _buildFromPickedFile(
file: pickedFile!,
fit: fit,
scale: scale,
width: width,
height: height,
errorWidget: errorWidget,
);
} else if (_isNetworkUrl(imageSource)) {
return _buildFromNetwork(
url: imageSource!,
fit: fit,
width: width,
height: height,
placeholder: placeholder,
errorWidget: errorWidget,
);
} else if (_isAssetPath(imageSource)) {
return _buildFromAsset(
path: imageSource!,
fit: fit,
scale: scale,
width: width,
height: height,
errorWidget: errorWidget,
);
}
return errorWidget ?? _defaultError();
} catch (e) {
debugPrint('AppImageResolver | Error: $e');
return errorWidget ?? _defaultError();
}
}