Пример #1
0
 private void PreloadChapterObjects()
 {
     if (!Equals(PrevChapterArchiveFilePath, null) && !File.Exists(PrevChapterArchiveFilePath))
     {
         if (!PrevChapterPreloading)
         {
             PreloadChapterObject(MangaObject, MangaObject.PrevChapterObject(ChapterObject));
             PrevChapterPreloading = true;
         }
     }
     else
     {
         PrevChapterPreloading = false;
     }
     if (!Equals(NextChapterArchiveFilePath, null) && !File.Exists(NextChapterArchiveFilePath))
     {
         if (!NextChapterPreloading)
         {
             PreloadChapterObject(MangaObject, MangaObject.NextChapterObject(ChapterObject));
             NextChapterPreloading = true;
         }
     }
     else
     {
         NextChapterPreloading = false;
     }
 }
Пример #2
0
 private async void PageNext()
 {
     if (PageObject.PageNumber < ChapterObject.Pages.Last().PageNumber)
     {
         PageObject = ChapterObject.NextPageObject(PageObject);
     }
     else
     {
         await OpenForReading(MangaObject, MangaObject.NextChapterObject(ChapterObject), false);
     }
 }
Пример #3
0
        private async Task OpenForReading(MangaObject MangaObject, ChapterObject ChapterObject, Boolean OpeningPreviousChapter = false, Boolean ResumeChapter = false)
        {
            this.MangaObject   = MangaObject;
            this.ChapterObject = ChapterObject;

            String MangaChaptersDirectory = Path.Combine(
                App.CORE.CHAPTER_ARCHIVE_DIRECTORY,
                MangaObject.MangaFileName());

            ChapterArchiveFilePath = Path.Combine(
                MangaChaptersDirectory,
                ChapterObject.ChapterArchiveName(App.CORE.CHAPTER_ARCHIVE_EXTENSION));

            PrevChapterPreloading = false;
            ChapterObject PrevChapterObject = MangaObject.PrevChapterObject(ChapterObject);

            if (!Equals(PrevChapterObject, null))   // Check if there is a ChapterObject before the current
            {
                PrevChapterArchiveFilePath = Path.Combine(MangaChaptersDirectory, PrevChapterObject.ChapterArchiveName(App.CORE.CHAPTER_ARCHIVE_EXTENSION));
            }
            else
            {
                PrevChapterArchiveFilePath = null;
            }

            NextChapterPreloading = false;
            ChapterObject NextChapterObject = MangaObject.NextChapterObject(ChapterObject);

            if (!Equals(NextChapterObject, null))   // Check if there is a ChapterObject after the current
            {
                NextChapterArchiveFilePath = Path.Combine(MangaChaptersDirectory, NextChapterObject.ChapterArchiveName(App.CORE.CHAPTER_ARCHIVE_EXTENSION));
            }
            else
            {
                NextChapterArchiveFilePath = null;
            }

            this.ChapterObject = await LoadChapterObjectAsync();

            BookmarkObject = await LoadBookmarkObjectAsync(OpeningPreviousChapter, ResumeChapter);

            PageObject = this.ChapterObject.PageObjectOfBookmarkObject(BookmarkObject);
            PullFocus();

            PageCacheObjects.Clear();
            (await LoadPageCacheObjectsAsync()).ForEach(_ => PageCacheObjects.Add(_));

            ChapterCleanup(MangaObject, ChapterObject);
        }