loadPages static method
Loads the metadata for all pages from QuranMetaData and returns a map of QuranPage objects.
Implementation
static Map<int, QuranPage> loadPages() {
Map<int, QuranPage> pages = {};
QuranMetaData.pageMeta.forEach((key, value) {
Map<int, PageSurahVerses> 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] = PageSurahVerses(
surahNumber: key,
startVerseNumber: startVerseNumber,
endVerseNumber: endVerseNumber,
verses: presentVersesOfSurah,
verseCount: presentVersesOfSurah.length,
);
});
pages[int.parse(key)] = QuranPage(
number: int.parse(key),
start: value['start'],
end: value['end'],
verseCount: value['end'] - (value['start'] - 1),
surahVerses: surahVerses,
);
});
return pages;
}