init static method
Future<void>
init({
- Map<
int, List< ? userBookmarks,BookmarkModel> > - bool overwriteBookmarks = false,
init تقوم بتهيئة القرآن ويجب استدعاؤها قبل البدء في استخدام الحزمة
init initializes the FlutterQuran, and must be called before starting using the package
Implementation
static Future<void> init(
{Map<int, List<BookmarkModel>>? userBookmarks,
bool overwriteBookmarks = false}) async {
if (_isInitialized) return;
await GetStorage.init();
// Initialize state values
final storage = GetStorage();
final storageConstants = _StorageConstants();
/// Initialize SurahAudioController
QuranCtrl.instance;
await _initTafsir();
quranCtrl.state.isDownloadedV2Fonts.value =
storage.read(storageConstants.isDownloadedCodeV2Fonts) ?? false;
quranCtrl.state.isBold.value = storage.read(storageConstants.isBold) ?? 0;
quranCtrl.state.fontsSelected.value =
storage.read(storageConstants.fontsSelected) ?? 0;
quranCtrl.state.fontsDownloadedList.value = (storage
.read<List<dynamic>>(storageConstants.fontsDownloadedList)
?.cast<int>() ??
[]);
// Load data in parallel
final futures = <Future<void>>[
QuranCtrl.instance.loadQuran(),
QuranCtrl.instance.loadFontsQuran(),
QuranCtrl.instance.fetchSurahs(),
Future(() async {
final lastPage = QuranRepository().getLastPage();
if (lastPage != null) {
// Handle last page if needed
}
}),
];
await Future.wait<void>(futures);
/// must be initilized after QuranCtrl, because it uses it
AudioCtrl.instance;
// Initialize bookmarks
BookmarksCtrl.instance.initBookmarks(
userBookmarks: userBookmarks, overwrite: overwriteBookmarks);
_isInitialized = true;
}