loadJuz static method

Map<int, Juz> loadJuz()

Loads the metadata for all Juz from QuranMetaData and returns a map of Juz objects.

Implementation

static Map<int, Juz> loadJuz() {
  Map<int, Juz> juz = {};

  QuranMetaData.juzMeta.forEach((key, value) {
    Map<int, JuzSurahVerses> surahVerses = {};
    (value['surahVerses'] as Map<int, List<int>>).forEach((key, value) {
      int startVerseNumber = value[0];
      int endVerseNumber = value[1];
      Map<int, Verse> allVersesInSurah = Quran.getSurahVersesAsMap(key);
      Map<int, Verse> presentVersesOfSurah = {};
      for (int i = startVerseNumber; i <= endVerseNumber; i++) {
        presentVersesOfSurah[i] = allVersesInSurah[i]!;
      }
      surahVerses[key] = JuzSurahVerses(
        surahNumber: key,
        startVerseNumber: startVerseNumber,
        endVerseNumber: endVerseNumber,
        verses: presentVersesOfSurah,
        verseCount: presentVersesOfSurah.length,
      );
    });
    juz[int.parse(key)] = Juz(
      number: int.parse(key),
      start: value['start'],
      end: value['end'],
      verseCount: value['end'] - (value['start'] - 1),
      surahVerses: surahVerses,
    );
  });

  return juz;
}