injectImages<D extends WithImgHashes> function
D
injectImages<D extends WithImgHashes>( - D data, {
- bool preloadFull = true,
})
Implementation
D injectImages<D extends WithImgHashes>(D data, {bool preloadFull = true}) {
if (data is InspectionLocation) {
Future<ImageData?> getImgDataFromHash(String? hash) {
if (!hash!.endsWith(".jpg") &&
!hash.endsWith(".jpeg") &&
!hash.endsWith(".JPG") &&
!hash.endsWith(".png")) debugPrint('hash $hash is not an image');
return API()
.getImageByHash(data.imagelink!, hash!, compressed: true)
.then((value) => value
?..fullImageGetter = () => API()
.getImageByHash(data.imagelink!, hash, compressed: false)
.then((value) => value?.thumbnail));
}
if (data.mainhash != null &&
data.mainhash != Options().no_image_placeholder_name) {
if (data.mainhash!.endsWith("jpg") ||
data.mainhash!.endsWith("JPG") ||
data.mainhash!.endsWith("jpeg") ||
data.mainhash!.endsWith("png"))
data.mainImage = getImgDataFromHash(data.mainhash);
var mainImage = getImgDataFromHash(data.mainhash);
data.imageFutures = data.imagehashes
?.where((hash) =>
hash.endsWith("jpg") ||
hash.endsWith("JPG") ||
hash.endsWith("jpeg") ||
hash.endsWith("png"))
.map((hash) => getImgDataFromHash(hash))
.toList();
data.mainImage = mainImage;
data.previewImage = mainImage;
} else {
//no main image set
if (data.imagehashes == null ||
data.imagehashes!.length == 0) //the second check *could* be omitted
return data;
data.previewImage = Future.value(null);
if (data.imagehashes != null && data.imagehashes!.length > 0) {
data.imageFutures = data.imagehashes
?.where((hash) =>
hash.endsWith("jpg") ||
hash.endsWith("JPG") ||
hash.endsWith("jpeg") ||
hash.endsWith("png"))
.map((hash) => getImgDataFromHash(hash))
.toList();
data.previewImage = data.imageFutures!.first;
}
}
}
return data;
}