ensureAppFontsLoaded static method

Future<void> ensureAppFontsLoaded()

Implementation

static Future<void> ensureAppFontsLoaded() async {
  if (_appFontsLoaded) return;
  _appFontsLoaded = true;

  List<dynamic> manifest;
  try {
    final rawManifest = await rootBundle.loadString('FontManifest.json');
    manifest = jsonDecode(rawManifest) as List<dynamic>;
  } catch (_) {
    return;
  }

  for (final familyEntry in manifest.whereType<Map>()) {
    final family = familyEntry['family']?.toString();
    final fonts = familyEntry['fonts'];
    if (family == null || fonts is! List) continue;

    for (final alias in _fontFamilyAliases(family)) {
      await _loadFontFamily(alias, fonts);
    }
  }
}