diff --git a/lib/modules/manga/detail/providers/update_manga_detail_providers.dart b/lib/modules/manga/detail/providers/update_manga_detail_providers.dart index d78ce051..4590d046 100644 --- a/lib/modules/manga/detail/providers/update_manga_detail_providers.dart +++ b/lib/modules/manga/detail/providers/update_manga_detail_providers.dart @@ -26,7 +26,12 @@ Future updateMangaDetail( (manga.chapters.isNotEmpty && isInit)) { return; } - final source = getSource(manga.lang!, manga.source!, manga.sourceId); + final source = getSource( + manga.lang!, + manga.source!, + manga.sourceId, + installedOnly: true, + ); MManga getManga; getManga = await ref.read( diff --git a/lib/modules/manga/reader/providers/reader_controller_provider.dart b/lib/modules/manga/reader/providers/reader_controller_provider.dart index 95f43afa..68ed596c 100644 --- a/lib/modules/manga/reader/providers/reader_controller_provider.dart +++ b/lib/modules/manga/reader/providers/reader_controller_provider.dart @@ -352,10 +352,10 @@ class ReaderController extends _$ReaderController { final isRead = (getReaderMode() == ReaderMode.verticalContinuous || getReaderMode() == ReaderMode.webtoon) - ? ((newIndex + 2) == getPageLength([]) - 1) - ? ((newIndex + 2) == getPageLength([]) - 1) - : (newIndex + 2) == getPageLength([]) - : (newIndex + 2) == getPageLength([]); + ? ((newIndex + 2) >= getPageLength([]) - 1) + ? ((newIndex + 2) >= getPageLength([]) - 1) + : (newIndex + 2) >= getPageLength([]) + : (newIndex + 2) >= getPageLength([]); if (isRead || save) { List? chapterPageIndexs = []; for (var chapterPageIndex diff --git a/lib/modules/manga/reader/reader_view.dart b/lib/modules/manga/reader/reader_view.dart index 315ea4ac..5de3ad3f 100644 --- a/lib/modules/manga/reader/reader_view.dart +++ b/lib/modules/manga/reader/reader_view.dart @@ -1051,10 +1051,10 @@ class _MangaChapterPageGalleryState setState(() { _readerController = ref.read( readerControllerProvider( - chapter: pages[_currentIndex!].chapter!, + chapter: pages[index].chapter!, ).notifier, ); - chapter = pages[_currentIndex!].chapter!; + chapter = pages[index].chapter!; final chapterUrlModel = pages[index].chapterUrlModel; if (chapterUrlModel != null) { _chapterUrlModel = chapterUrlModel; diff --git a/lib/utils/utils.dart b/lib/utils/utils.dart index 43c16c9c..aa68b5c7 100644 --- a/lib/utils/utils.dart +++ b/lib/utils/utils.dart @@ -2,9 +2,18 @@ import 'package:isar_community/isar.dart'; import 'package:mangayomi/main.dart'; import 'package:mangayomi/models/source.dart'; -Source? getSource(String lang, String name, int? sourceId) { +Source? getSource( + String lang, + String name, + int? sourceId, { + bool installedOnly = false, +}) { try { - final sourcesList = isar.sources.filter().idIsNotNull().findAllSync(); + var sourcesFilter = isar.sources.filter().idIsNotNull(); + if (installedOnly) { + sourcesFilter = sourcesFilter.isActiveEqualTo(true).isAddedEqualTo(true); + } + final sourcesList = sourcesFilter.findAllSync(); return sourcesList.firstWhere( (element) => sourceId != null ? element.id == sourceId && element.sourceCode != null