public async Task <IEnumerable <Locale> > GetLocalesAsync() { await Initialize(); try { return(tts.AvailableLanguages.Select(a => new Locale(a.Language, a.Country, a.DisplayName, string.Empty))); } catch (Exception ex) { Debug.WriteLine("Unable to query language on new API, attempting older api: " + ex); } return(JavaLocale.GetAvailableLocales() .Where(IsLocaleAvailable) .Select(l => new Locale(l.Language, l.Country, l.DisplayName, string.Empty)) .GroupBy(c => c.ToString()) .Select(g => g.First())); }
public async Task <IEnumerable <Locale> > GetLocalesAsync() { await Initialize(); if (Platform.HasApiLevel(BuildVersionCodes.Lollipop)) { try { return(tts.AvailableLanguages.Select(a => new Locale(a.Language, a.Country, a.DisplayName, string.Empty))); } catch (Exception ex) { Console.WriteLine("Something went horribly wrong, defaulting to old implementation to get languages: " + ex); } } return(JavaLocale.GetAvailableLocales() .Where(IsLocaleAvailable) .Select(l => new Locale(l.Language, l.Country, l.DisplayName, string.Empty)) .GroupBy(c => c.ToString()) .Select(g => g.First())); }