getExpectedLinesCount method

int getExpectedLinesCount(
  1. int pageIndex
)

حساب عدد الأسطر المتوقع للصفحة الحالية بناءً على موقعها Calculate expected lines count for current page based on its position

Implementation

int getExpectedLinesCount(int pageIndex) {
  final actualLines = surahPages[pageIndex].lines.length;

  // شرح: إذا كانت الصفحة الأولى
  // Explanation: If it's the first page
  if (pageIndex == 0) {
    // شرح: الصفحة الأولى لها عدد أسطر أقل بسبب البنر والبسملة
    // Explanation: First page has fewer lines due to banner and basmala
    if (_surahNumber == 2) {
      return 6; // سورة البقرة
    } else if (_surahNumber == 9) {
      return 14; // سورة التوبة
    } else {
      return 13; // باقي السور
    }
  }

  // شرح: إذا كانت الصفحة الأخيرة
  // Explanation: If it's the last page
  if (isLastPage(pageIndex)) {
    // شرح: للصفحة الأخيرة نستخدم الحد الأقصى بين الأسطر الفعلية و10 أسطر لضمان توزيع جيد للمساحة
    // Explanation: For last page use maximum between actual lines and 10 lines to ensure good space distribution
    return math.max(actualLines, 15);
  }

  // شرح: للصفحات العادية
  // Explanation: For normal pages
  return 15;
}