quranPagesController property

PreloadPageController get quranPagesController

Implementation

PreloadPageController get quranPagesController {
  // إذا لم يكن الـ controller مُهيأً بعد، أنشئه
  // لا تتحقق من hasClients هنا لأن ذلك يسبب إعادة إنشاء الـ controller
  // قبل أن يتم ربطه بالـ PageView
  QuranCtrl.instance._pageController ??= PreloadPageController(
    initialPage: (_quranRepository.getLastPage() ?? 1) - 1,
    keepPage: true,
    viewportFraction: 1.0,
  );
  return QuranCtrl.instance._pageController!;
}
set quranPagesController (PreloadPageController controller)

Implementation

set quranPagesController(PreloadPageController controller) {
  // حفظ الـ controller الجديد
  // إذا كان هناك controller قديم، قم بالتخلص منه أولاً
  if (QuranCtrl.instance._pageController != null &&
      QuranCtrl.instance._pageController!.hasClients) {
    try {
      QuranCtrl.instance._pageController!.dispose();
    } catch (_) {
      // تجاهل الأخطاء إذا كان قد تم التخلص منه مسبقاً
    }
  }
  QuranCtrl.instance._pageController = controller;
}