getExpectedLinesCount method
حساب عدد الأسطر المتوقع للصفحة الحالية بناءً على موقعها 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;
}