loadJuz static method
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;
}