precache static method

Future<void> precache(
  1. BuildContext context,
  2. String imageUri, {
  3. String assetPrefix = 'assets',
})

Precache the image

Implementation

static Future<void> precache(BuildContext context, String imageUri,
    {String assetPrefix = 'assets'}) async {
  if (imageUri.endsWith('.svg')) {
    if (imageUri.startsWith(assetPrefix)) {
      final loader = SvgAssetLoader(imageUri);
      await svg.cache
          .putIfAbsent(loader.cacheKey(null), () => loader.loadBytes(null));
    } else if (imageUri.startsWith('http')) {
      final loader = SvgNetworkLoader(imageUri);
      await svg.cache
          .putIfAbsent(loader.cacheKey(null), () => loader.loadBytes(null));
    } else {
      await precacheSvgFile(imageUri);
    }
  } else {
    if (imageUri.startsWith(assetPrefix)) {
      await precacheImage(ExtendedExactAssetImageProvider(imageUri), context);
    } else if (imageUri.startsWith('http')) {
      await precacheImage(ExtendedNetworkImageProvider(imageUri), context);
    } else {
      await precacheExtendedImageFile(context, imageUri);
    }
  }
}