diff --git a/lib/main.dart b/lib/main.dart index cefd400..5ab6285 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -36,6 +36,7 @@ import 'package:fladder/util/application_info.dart'; import 'package:fladder/util/fladder_config.dart'; import 'package:fladder/util/localization_helper.dart'; import 'package:fladder/util/string_extensions.dart'; +import 'package:fladder/util/svg_utils.dart'; import 'package:fladder/util/themes_data.dart'; import 'package:fladder/widgets/media_query_scaler.dart'; @@ -57,6 +58,8 @@ void main(List args) async { WidgetsFlutterBinding.ensureInitialized(); final crashProvider = CrashLogNotifier(); + await SvgUtils.preCacheSVGs(); + if (defaultTargetPlatform == TargetPlatform.windows) { await SMTCWindows.initialize(); } diff --git a/lib/util/svg_utils.dart b/lib/util/svg_utils.dart new file mode 100644 index 0000000..be7874a --- /dev/null +++ b/lib/util/svg_utils.dart @@ -0,0 +1,22 @@ +import 'package:flutter_svg/flutter_svg.dart'; + +class SvgUtils { + static List allSvgs = [ + 'icons/fladder_icon.svg', + 'icons/fladder_icon_outline.svg', + ]; + + static Future preCacheSVGs() async { + try { + for (final path in allSvgs) { + final loadSvg = SvgAssetLoader(path); + await svg.cache.putIfAbsent( + loadSvg.cacheKey(null), + () => loadSvg.loadBytes(null), + ); + } + } catch (e) { + print(e); + } + } +}