public async Task <string> GetAyahString(QuranAyah ayah) { if (ayah == null) { return(null); } else if (ayah.Text != null) { return(ayah.Text); } else { try { return(await Task.Run <string>(() => { using (var dbArabic = new QuranDatabaseHandler <ArabicAyah>(FileUtils.ArabicDatabase)) { var ayahSurah = dbArabic.GetVerse(ayah.Surah, ayah.Ayah); string ayahText = ayahSurah.Text; return ayahText; } })); } catch (Exception e) { telemetry.TrackException(e, new Dictionary <string, string> { { "Scenario", "OpenArabicDatabase" } }); } } return(null); }
public async Task CopyAyahToClipboard(QuranAyah ayah) { if (ayah == null) { return; } if (ayah.Translation != null) { QuranApp.NativeProvider.CopyToClipboard(ayah.Translation); } else if (ayah.Text != null) { QuranApp.NativeProvider.CopyToClipboard(ayah.Text); } else { try { using (var dbArabic = new QuranDatabaseHandler <ArabicAyah>(FileUtils.ArabicDatabase)) { var ayahSurah = await new TaskFactory().StartNew(() => dbArabic.GetVerse(ayah.Surah, ayah.Ayah)); QuranApp.NativeProvider.CopyToClipboard(ayahSurah.Text); } } catch (Exception e) { telemetry.TrackException(e, new Dictionary <string, string> { { "Scenario", "OpenArabicDatabase" } }); } } }
public async Task<string> GetAyahString(QuranAyah ayah) { if (ayah == null) { return null; } else if (ayah.Text != null) { return ayah.Text; } else { await DownloadArabicSearchFile(); if (FileUtils.HaveArabicSearchFile()) { try { using (var dbArabic = new QuranDatabaseHandler<ArabicAyah>(FileUtils.QURAN_ARABIC_DATABASE)) { var ayahSurah = await new TaskFactory().StartNew(() => dbArabic.GetVerse(ayah.Surah, ayah.Ayah)); string ayahText = ayahSurah.Text; return ayahText; } } catch (Exception) { Debug.WriteLine("Ayah Text isn't found"); } } } return null; }
public async void CopyAyahToClipboard(QuranAyah ayah) { if (ayah == null) return; if (ayah.Translation != null) { QuranApp.NativeProvider.CopyToClipboard(ayah.Translation); } else if (ayah.Text != null) { QuranApp.NativeProvider.CopyToClipboard(ayah.Text); } else { await DownloadArabicSearchFile(); if (FileUtils.HaveArabicSearchFile()) { try { using (var dbArabic = new QuranDatabaseHandler<ArabicAyah>(FileUtils.QURAN_ARABIC_DATABASE)) { var ayahSurah = await new TaskFactory().StartNew(() => dbArabic.GetVerse(ayah.Surah, ayah.Ayah)); QuranApp.NativeProvider.CopyToClipboard(ayahSurah.Text); } } catch { //Not able to get Arabic text - skipping } } } }
private static async Task<ItemViewModel> CreateBookmarkModel(Bookmarks bookmark) { var group = Resources.bookmarks; if (bookmark.Tags != null && bookmark.Tags.Count > 0) group = bookmark.Tags[0].Name; if (bookmark.Ayah != null && bookmark.Surah != null) { string title = QuranUtils.GetSurahNameFromPage(bookmark.Page, true); string details = ""; if (await FileUtils.HaveArabicSearchFile()) { try { using (var dbArabic = new QuranDatabaseHandler<ArabicAyah>(FileUtils.QURAN_ARABIC_DATABASE)) { var ayahSurah = await new TaskFactory().StartNew( () => dbArabic.GetVerse(bookmark.Surah.Value, bookmark.Ayah.Value)); title = ayahSurah.Text; } } catch (Exception ex) { telemetry.TrackException(ex, new Dictionary<string, string> { { "Scenario", "OpenArabicDatabase" } }); } details = string.Format(CultureInfo.InvariantCulture, "{0} {1} {2}, {3} {4}", QuranUtils.GetSurahName(bookmark.Surah.Value, true), Resources.verse, bookmark.Ayah.Value, QuranUtils.GetJuzTitle(), QuranUtils.GetJuzFromPage(bookmark.Page)); } else { details = string.Format(CultureInfo.InvariantCulture, "{0} {1}, {2} {3}, {4} {5}", Resources.quran_page, bookmark.Page, Resources.verse, bookmark.Ayah.Value, QuranUtils.GetJuzTitle(), QuranUtils.GetJuzFromPage(bookmark.Page)); } if (title.Length > maxBookmarkTitle) { for (int i = maxBookmarkTitle; i > 1; i--) { if (title[i] == ' ') { title = title.Substring(0, i - 1); break; } } } return new ItemViewModel { Id = bookmark.Id.ToString(CultureInfo.InvariantCulture), Title = title, Details = details, PageNumber = bookmark.Page, SelectedAyah = new QuranAyah(bookmark.Surah.Value, bookmark.Ayah.Value), Image = new BitmapImage(new Uri("ms-appx:///Assets/Images/favorite.png")), ItemType = ItemViewModelType.Bookmark, Group = group }; } else { return new ItemViewModel { Id = bookmark.Id.ToString(CultureInfo.InvariantCulture), Title = QuranUtils.GetSurahNameFromPage(bookmark.Page, true), Details = string.Format(CultureInfo.InvariantCulture, "{0} {1}, {2} {3}", Resources.quran_page, bookmark.Page, QuranUtils.GetJuzTitle(), QuranUtils.GetJuzFromPage(bookmark.Page)), PageNumber = bookmark.Page, Image = new BitmapImage(new Uri("ms-appx:///Assets/Images/favorite.png")), ItemType = ItemViewModelType.Bookmark, Group = group }; } }
public async Task<string> GetAyahString(QuranAyah ayah) { if (ayah == null) { return null; } else if (ayah.Text != null) { return ayah.Text; } else { await DownloadArabicSearchFile(); if (await FileUtils.HaveArabicSearchFile()) { try { using (var dbArabic = new QuranDatabaseHandler<ArabicAyah>(FileUtils.QURAN_ARABIC_DATABASE)) { var ayahSurah = dbArabic.GetVerse(ayah.Surah, ayah.Ayah); string ayahText = ayahSurah.Text; return ayahText; } } catch (Exception e) { telemetry.TrackException(e, new Dictionary<string, string> { { "Scenario", "OpenArabicDatabase" } }); } } } return null; }
public async void CopyAyahToClipboard(QuranAyah ayah) { if (ayah == null) return; if (ayah.Translation != null) { QuranApp.NativeProvider.CopyToClipboard(ayah.Translation); } else if (ayah.Text != null) { QuranApp.NativeProvider.CopyToClipboard(ayah.Text); } else { await DownloadArabicSearchFile(); if (await FileUtils.HaveArabicSearchFile()) { try { using (var dbArabic = new QuranDatabaseHandler<ArabicAyah>(FileUtils.QURAN_ARABIC_DATABASE)) { var ayahSurah = await new TaskFactory().StartNew(() => dbArabic.GetVerse(ayah.Surah, ayah.Ayah)); QuranApp.NativeProvider.CopyToClipboard(ayahSurah.Text); } } catch (Exception e) { telemetry.TrackException(e, new Dictionary<string, string> { { "Scenario", "OpenArabicDatabase" } }); } } } }
private static async Task <ItemViewModel> CreateBookmarkModel(Bookmarks bookmark) { var group = Resources.bookmarks; if (bookmark.Tags != null && bookmark.Tags.Count > 0) { group = bookmark.Tags[0].Name; } if (bookmark.Ayah != null && bookmark.Surah != null) { string title = QuranUtils.GetSurahNameFromPage(bookmark.Page, true); string details = ""; try { using (var dbArabic = new QuranDatabaseHandler <ArabicAyah>(FileUtils.ArabicDatabase)) { var ayahSurah = await new TaskFactory().StartNew(() => dbArabic.GetVerse(bookmark.Surah.Value, bookmark.Ayah.Value)); title = ayahSurah.Text; } } catch (Exception ex) { telemetry.TrackException(ex, new Dictionary <string, string> { { "Scenario", "OpenArabicDatabase" } }); } details = string.Format(CultureInfo.InvariantCulture, "{0} {1} {2}, {3} {4}", QuranUtils.GetSurahName(bookmark.Surah.Value, true), Resources.verse, bookmark.Ayah.Value, QuranUtils.GetJuzTitle(), QuranUtils.GetJuzFromPage(bookmark.Page)); if (title.Length > maxBookmarkTitle) { for (int i = maxBookmarkTitle; i > 1; i--) { if (title[i] == ' ') { title = title.Substring(0, i - 1); break; } } } return(new ItemViewModel { Id = bookmark.Id.ToString(CultureInfo.InvariantCulture), Title = title, Details = details, PageNumber = bookmark.Page, SelectedAyah = new QuranAyah(bookmark.Surah.Value, bookmark.Ayah.Value), Image = new BitmapImage(new Uri("ms-appx:///Assets/Images/favorite.png")), ItemType = ItemViewModelType.Bookmark, Group = group }); } else { return(new ItemViewModel { Id = bookmark.Id.ToString(CultureInfo.InvariantCulture), Title = QuranUtils.GetSurahNameFromPage(bookmark.Page, true), Details = string.Format(CultureInfo.InvariantCulture, "{0} {1}, {2} {3}", Resources.quran_page, bookmark.Page, QuranUtils.GetJuzTitle(), QuranUtils.GetJuzFromPage(bookmark.Page)), PageNumber = bookmark.Page, Image = new BitmapImage(new Uri("ms-appx:///Assets/Images/favorite.png")), ItemType = ItemViewModelType.Bookmark, Group = group }); } }
public override async Task Initialize() { IsLoading = true; ClearPages(); Orientation = DisplayInformation.GetForCurrentView().CurrentOrientation; if (SettingsUtils.Get <bool>(Constants.PREF_NIGHT_MODE)) { Theme = ElementTheme.Dark; } else { Theme = ElementTheme.Light; } KeepInfoOverlay = SettingsUtils.Get <bool>(Constants.PREF_KEEP_INFO_OVERLAY); //Update translations var translation = SettingsUtils.Get <string>(Constants.PREF_ACTIVE_TRANSLATION); if (!string.IsNullOrEmpty(translation)) { TranslationFile = translation.Split('|')[0]; if (await HasTranslationFile()) { ShowTranslation = SettingsUtils.Get <bool>(Constants.PREF_SHOW_TRANSLATION); ShowArabicInTranslation = SettingsUtils.Get <bool>(Constants.PREF_SHOW_ARABIC_IN_TRANSLATION); } if (await HasTranslationFile()) { using (var db = new QuranDatabaseHandler <QuranAyah>(this.TranslationFile)) { _bismillahTranslation = (await new TaskFactory().StartNew(() => db.GetVerse(1, 1))).Text; } } } await CreatePages(); await LoadCurrentPage(); await base.Initialize(); IsLoading = false; }
private static async Task<ItemViewModel> createBookmarkModel(Bookmarks bookmark) { var group = AppResources.bookmarks; if (bookmark.Tags != null && bookmark.Tags.Count > 0) group = bookmark.Tags[0].Name; if (bookmark.Ayah != null && bookmark.Surah != null) { string title = QuranUtils.GetSurahNameFromPage(bookmark.Page, true); string details = ""; if (FileUtils.HaveArabicSearchFile()) { try { using (var dbArabic = new QuranDatabaseHandler<ArabicAyah>(FileUtils.QURAN_ARABIC_DATABASE)) { var ayahSurah = await new TaskFactory().StartNew( () => dbArabic.GetVerse(bookmark.Surah.Value, bookmark.Ayah.Value)); title = ayahSurah.Text; } } catch { //Not able to get Arabic text - skipping } details = string.Format(CultureInfo.InvariantCulture, "{0} {1} {2}, {3} {4}", QuranUtils.GetSurahName(bookmark.Surah.Value, true), AppResources.verse, bookmark.Ayah.Value, QuranUtils.GetJuzTitle(), QuranUtils.GetJuzFromPage(bookmark.Page)); } else { details = string.Format(CultureInfo.InvariantCulture, "{0} {1}, {2} {3}, {4} {5}", AppResources.quran_page, bookmark.Page, AppResources.verse, bookmark.Ayah.Value, QuranUtils.GetJuzTitle(), QuranUtils.GetJuzFromPage(bookmark.Page)); } if (title.Length > maxBookmarkTitle) { for (int i = maxBookmarkTitle; i > 1; i--) { if (title[i] == ' ') { title = title.Substring(0, i - 1); break; } } } return new ItemViewModel { Id = bookmark.Id.ToString(CultureInfo.InvariantCulture), Title = title, Details = details, PageNumber = bookmark.Page, SelectedAyah = new QuranAyah(bookmark.Surah.Value, bookmark.Ayah.Value), Image = new Uri("/Assets/Images/favorite.png", UriKind.Relative), ItemType = ItemViewModelType.Bookmark, Group = group }; } else { return new ItemViewModel { Id = bookmark.Id.ToString(CultureInfo.InvariantCulture), Title = QuranUtils.GetSurahNameFromPage(bookmark.Page, true), Details = string.Format(CultureInfo.InvariantCulture, "{0} {1}, {2} {3}", AppResources.quran_page, bookmark.Page, QuranUtils.GetJuzTitle(), QuranUtils.GetJuzFromPage(bookmark.Page)), PageNumber = bookmark.Page, Image = new Uri("/Assets/Images/favorite.png", UriKind.Relative), ItemType = ItemViewModelType.Bookmark, Group = group }; } }