Beispiel #1
0
        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);
        }
Beispiel #2
0
        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
                    }
                }
            }
        }
Beispiel #5
0
        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
                });
            }
        }
Beispiel #9
0
        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;
        }
Beispiel #10
0
        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
                };
            }
        }