loadData method

Future<void> loadData()

Implementation

Future<void> loadData() async {
  if (_rawJson != null) return;

  final String phonemeData;
  if (phonemeJsonString != null && phonemeJsonString!.isNotEmpty) {
    phonemeData = phonemeJsonString!;
  } else if (phonemeFilePath != null) {
    if (!kIsWeb && File(phonemeFilePath!).existsSync()) {
      phonemeData = await File(phonemeFilePath!).readAsString();
    } else if (kIsWeb ||
        phonemeFilePath!.startsWith('assets/') ||
        phonemeFilePath!.startsWith('packages/')) {
      phonemeData = await rootBundle.loadString(phonemeFilePath!);
    } else {
      phonemeData = await File(phonemeFilePath!).readAsString();
    }
  } else {
    phonemeData = await _loadFromBundle();
  }

  // Decode synchronously on the main isolate.
  _rawJson = jsonDecode(phonemeData) as Map<String, dynamic>;
}