fetchTranslate method

Future<void> fetchTranslate()

شرح: جلب الترجمة Explanation: Fetch translation

Implementation

Future<void> fetchTranslate() async {
  try {
    Directory databasePath = await getApplicationDocumentsDirectory();
    String path = radioValue.value == 5
        ? 'packages/quran_library/assets/en.json'
        : join(databasePath.path, '${translationLangCode.value}.json');
    isLoading.value = true;
    String jsonString;
    if (radioValue.value == 5) {
      jsonString = await rootBundle
          .loadString('packages/quran_library/assets/en.json');
    } else {
      if (await File(path).exists()) {
        jsonString = await File(path).readAsString();
      } else {
        throw Exception('File not found');
      }
    }
    Map<String, dynamic> showData = json.decode(jsonString);
    translationList.value = (showData['translations'] as List)
        .map((item) => TranslationModel.fromJson(item))
        .toList();
  } catch (e) {
    log('Error loading translation file: $e', name: 'TafsirCtrl');
  } finally {
    isLoading.value = false;
  }
  update(['change_tafsir']);
}