handleRadioValueChanged method

Future<void> handleRadioValueChanged(
  1. int val
)

Implementation

Future<void> handleRadioValueChanged(int val) async {
  log('start changing Tafsir');
  String? dbFileName;
  radioValue.value = val;

  switch (val) {
    case 0:
      isTafsir.value = true;
      selectedTableName.value = MufaserName.ibnkatheer.name;
      dbFileName = 'ibnkatheerV2.sqlite';
      box.write(_StorageConstants().isTafsir, true);
      break;
    case 1:
      isTafsir.value = true;
      selectedTableName.value = MufaserName.baghawy.name;
      dbFileName = 'baghawyV2.db';
      box.write(_StorageConstants().isTafsir, true);
      break;
    case 2:
      isTafsir.value = true;
      selectedTableName.value = MufaserName.qurtubi.name;
      dbFileName = 'qurtubiV2.db';
      box.write(_StorageConstants().isTafsir, true);
      break;
    case 3:
      isTafsir.value = true;
      selectedTableName.value = MufaserName.saadi.name;
      dbFileName = 'saadiV3.db';
      box.write(_StorageConstants().isTafsir, true);
      break;
    case 4:
      isTafsir.value = true;
      selectedTableName.value = MufaserName.tabari.name;
      dbFileName = 'tabariV2.db';
      box.write(_StorageConstants().isTafsir, true);
      selectedTableName.value = MufaserName.ibnkatheer.name;
      dbFileName = 'ibnkatheerV2.sqlite';
      break;
    case 5:
      isTafsir.value = false;
      trans.value = 'en';
      box.write(_StorageConstants().translationLangCode, 'en');
      box.write(_StorageConstants().isTafsir, false);
      break;
    case 6:
      isTafsir.value = false;
      trans.value = 'es';
      box.write(_StorageConstants().translationLangCode, 'es');
      box.write(_StorageConstants().isTafsir, false);
      break;
    case 7:
      isTafsir.value = false;
      trans.value = 'be';
      box.write(_StorageConstants().translationLangCode, 'be');
      box.write(_StorageConstants().isTafsir, false);
      break;
    case 8:
      isTafsir.value = false;
      trans.value = 'urdu';
      box.write(_StorageConstants().translationLangCode, 'urdu');
      box.write(_StorageConstants().isTafsir, false);
      break;
    case 9:
      isTafsir.value = false;
      trans.value = 'so';
      box.write(_StorageConstants().translationLangCode, 'so');
      box.write(_StorageConstants().isTafsir, false);
      break;
    case 10:
      isTafsir.value = false;
      trans.value = 'in';
      box.write(_StorageConstants().translationLangCode, 'in');
      box.write(_StorageConstants().isTafsir, false);
      break;
    case 11:
      isTafsir.value = false;
      trans.value = 'ku';
      box.write(_StorageConstants().translationLangCode, 'ku');
      box.write(_StorageConstants().isTafsir, false);
      break;
    case 12:
      isTafsir.value = false;
      trans.value = 'tr';
      box.write(_StorageConstants().translationLangCode, 'tr');
      box.write(_StorageConstants().isTafsir, false);
      break;
    default:
      selectedTableName.value = MufaserName.saadi.name;
      dbFileName = 'saadiV3.db';
  }
  if (isTafsir.value) {
    tafseerList.clear();
    await closeCurrentDatabase();
    box.write(_StorageConstants().tafsirTableValue, selectedTableName.value);
    database.value = TafsirDatabase(dbFileName!);
    initializeDatabase();
    await fetchData(QuranCtrl.instance.state.currentPageNumber.value);
    log('Database initialized for: $dbFileName');
  } else {
    transValue.value == val;
    box.write(_StorageConstants().translationValue, val);
    fetchTranslate();
  }
  update(['change_tafsir']);
}