getFontSize static method

double getFontSize(
  1. int pageIndex,
  2. BuildContext context
)

Implementation

static double getFontSize(int pageIndex, BuildContext context) {
  final isPortrait =
      MediaQuery.of(context).orientation == Orientation.portrait;

  // تحويل pageIndex لرقم الصفحة الفعلي (مكنون يبدأ من 1)
  final page = pageIndex + 1;

  // للوضع الأفقي
  if (!isPortrait) {
    return 35.sp;
  }

  // للأجهزة اللوحية أو الشاشات الكبيرة
  if (MediaQuery.of(context).size.shortestSide > 600) {
    return 15.sp;
  }

  // للشاشات الصغيرة
  final screenWidth = MediaQuery.of(context).size.width;
  if (screenWidth < 360) {
    return 20.sp;
  }

  // الصفحة الأولى والثانية
  if (page == 1 || page == 2) {
    return 25.sp;
  }

  // صفحات خاصة تحتاج أحجام مخصصة
  if (page == 145 || page == 585) {
    return 22.7.sp;
  }

  if (page == 532 || page == 533 || page == 523 || page == 577) {
    return 22.5.sp;
  }

  if (page == 116 || page == 156) {
    return 23.4.sp;
  }

  // مجموعة صفحات بحجم 23.sp
  final size23Pages = [
    56,
    57,
    368,
    269,
    372,
    376,
    409,
    435,
    444,
    448,
    527,
    535,
    565,
    566,
    569,
    574,
    578,
    581,
    584,
    587,
    589,
    590,
    592,
    593,
    50,
    568,
    34
  ];
  if (size23Pages.contains(page)) {
    return 23.sp;
  }

  if (page == 70) {
    return 23.5.sp;
  }

  if (page == 51 || page == 501) {
    return 23.7.sp;
  }

  if (page == 575) {
    return 23.sp;
  }

  // مجموعة صفحات بحجم 22.8.sp
  final size228Pages = [576, 567, 371, 446, 447];
  if (size228Pages.contains(page)) {
    return 22.8.sp;
  }

  // الحجم الافتراضي - مطابق لمكنون
  return 23.1.sp;
}