cache static method

void cache({
  1. required WidgetsBinding widgetsBinding,
})

Implementation

static void cache({required WidgetsBinding widgetsBinding}) {
  widgetsBinding.addPostFrameCallback((_) async {
    BuildContext? context = widgetsBinding.rootElement;
    if (context != null) {
      // get asset
      final manifestJson = await DefaultAssetBundle.of(context)
          .loadString('AssetManifest.json');
      final Map<String, dynamic> manifestMap = json.decode(manifestJson);

      final imageList = manifestMap.keys.toList();
      List<String> extensionList = ['png', 'jpg', 'jpeg', "gif"];
      imageList
          .removeWhere((e) => !extensionList.contains(e.split('.').last));

      for (var imageUrl in imageList) {
        MImagePreCache.cacheItem(imageUrl, context);
      }
    }
  });
}