private void DeleteLanguageButton_Tapped(object sender, EventArgs e) { OcrLanguage ocrLanguage = (sender as SvgImage).BindingContext as OcrLanguage; if (ocrLanguage == null) { return; } OcrLanguageManager.DeleteLanguage(ocrLanguage.Language); ocrLanguage.IsDownloadable = true; // Manually remove from active/inactive languages, then manually add to downloadable languages if (ActiveLanguages.Contains(ocrLanguage)) { ActiveLanguages.Remove(ocrLanguage); } else if (InactiveLanguages.Contains(ocrLanguage)) { InactiveLanguages.Remove(ocrLanguage); } if (!DownloadableLanguages.Contains(ocrLanguage)) { // Take the language from OcrLanguageManager.DownloadableLanguages instead of the local downloadable languages list since that one // has the updated class members like file size and what not. var langs = OcrLanguageManager.DownloadableLanguages.Where(l => l.Language.Equals(ocrLanguage.Language)); if (langs != null && langs.Count() > 0) { ocrLanguage = langs.ElementAt(0); } DownloadableLanguages.Add(ocrLanguage); } ReloadCachedLanguagesInfo(); }
private void PopulateActiveInactiveLanguages() { InactiveLanguages.Clear(); foreach (OcrLanguage localLanguage in OcrLanguageManager.LocalLanguages) { localLanguage.IsDefaultLanguage = false; if (!ActiveLanguages.Any(l => l.Language.Equals(localLanguage.Language))) { InactiveLanguages.Add(localLanguage); } } foreach (OcrLanguage activeLanguage in ActiveLanguages) { activeLanguage.IsDefaultLanguage = ActiveLanguages[0].Equals(activeLanguage); } var inactiveLanguages = InactiveLanguages.OrderBy(firstOrder => firstOrder.CanBeDeleted).ThenBy(secondOrder => secondOrder.LocalizedName); InactiveLanguages = new ObservableCollection <OcrLanguage>(inactiveLanguages); RefreshActiveInactiveListViews(); }