fetchMultiLanguage static method
Future<void>
fetchMultiLanguage(
)
Implementation
static Future<void> fetchMultiLanguage() async {
try {
// First try to load language from local storage
final savedLanguage = await _loadLanguageFromStorage();
// Fetch languages from API
final response = await http.get(Uri.parse(ApiConstants.languageUrl));
if (response.statusCode == 200) {
final List<dynamic> data = json.decode(response.body);
multiLang = List<Map<String, dynamic>>.from(data);
// If we have a saved language, use it as default
if (savedLanguage != null) {
defaultLanguage = savedLanguage;
} else {
// Otherwise, look for English language
if (multiLang.isNotEmpty) {
defaultLanguage = multiLang.firstWhere(
(lang) => lang['countryName'] == 'English',
orElse: () => multiLang.first,
);
// Save the default language to local storage
LanguageState()._saveLanguageToStorage(defaultLanguage!);
}
}
// Notify listeners of potential change
LanguageState()._notifyListenersIfNeeded();
}
} catch (e) {
print('Error fetching languages: $e');
}
}