This commit is contained in:
kodjomoustapha 2023-12-21 22:27:08 +01:00
parent 9033f17de3
commit d9bcdd726b
2 changed files with 35 additions and 27 deletions

View file

@ -256,9 +256,11 @@ class _MangaChapterPageGalleryState
@override
Widget build(BuildContext context) {
_processCropBorders();
final backgroundColor = ref.watch(backgroundColorStateProvider);
final cropBorders = ref.watch(cropBordersStateProvider);
if (cropBorders) {
_processCropBorders();
}
final usePageTapZones = ref.watch(usePageTapZonesStateProvider);
final l10n = l10nLocalizations(context)!;
return WillPopScope(
@ -715,14 +717,17 @@ class _MangaChapterPageGalleryState
void _readProgressListener() {
_currentIndex = _itemPositionsListener.itemPositions.value.first.index;
_readerController.setPageIndex(
_geCurrentIndex(_uChapDataPreload[_currentIndex!].index!), false);
int pagesLength = _pageMode == PageMode.doublePage
? (_uChapDataPreload.length / 2).ceil() + 1
: _uChapDataPreload.length;
if (_currentIndex! >= 0 && _currentIndex! < pagesLength) {
if (_readerController.chapter.id !=
_uChapDataPreload[_currentIndex!].chapter!.id) {
_readerController.setPageIndex(
_geCurrentIndex(_uChapDataPreload[_currentIndex! - 1].index!),
false);
if (mounted) {
setState(() {
_readerController = ref.read(readerControllerProvider(
@ -735,30 +740,28 @@ class _MangaChapterPageGalleryState
});
}
}
if (_itemPositionsListener.itemPositions.value.last.index ==
pagesLength - 1) {
_isBookmarked = _readerController.getChapterBookmarked();
try {
bool hasNextChapter = _readerController.getChapterIndex().$1 != 0;
final chapter =
hasNextChapter ? _readerController.getNextChapter() : null;
if (chapter != null) {
ref
.watch(getChapterPagesProvider(
chapter: chapter,
).future)
.then((value) => _preloadNextChapter(value, chapter));
}
} catch (_) {}
}
ref.read(currentIndexProvider(chapter).notifier).setCurrentIndex(
_uChapDataPreload[_currentIndex!].index!,
);
}
if (_itemPositionsListener.itemPositions.value.last.index ==
pagesLength - 1) {
_isBookmarked = _readerController.getChapterBookmarked();
try {
bool hasNextChapter = _readerController.getChapterIndex().$1 != 0;
final chapter =
hasNextChapter ? _readerController.getNextChapter() : null;
if (chapter != null) {
ref
.watch(getChapterPagesProvider(
chapter: chapter,
).future)
.then((value) {
_preloadNextChapter(value, chapter);
});
}
} catch (_) {}
}
}
void _preloadNextChapter(GetChapterPagesModel chapterData, Chapter chap) {
@ -840,14 +843,19 @@ class _MangaChapterPageGalleryState
}
void _onPageChanged(int index) {
_processCropBordersByIndex(index);
final cropBorders = ref.watch(cropBordersStateProvider);
if (cropBorders) {
_processCropBordersByIndex(index);
}
for (var i = 1; i < pagePreloadAmount + 1; i++) {
_precacheImages(index + i);
_precacheImages(index - i);
}
_readerController.setPageIndex(
_geCurrentIndex(_uChapDataPreload[_currentIndex!].index!), false);
if (_readerController.chapter.id != _uChapDataPreload[index].chapter!.id) {
_readerController.setPageIndex(
_geCurrentIndex(_uChapDataPreload[_currentIndex!].index!), false);
if (mounted) {
setState(() {
_readerController = ref.read(readerControllerProvider(

View file

@ -1115,10 +1115,10 @@ packages:
dependency: "direct main"
description:
name: rinf
sha256: "8f8e35995e024ea3c5693c4de0c20efb6bad3f37ac5fe510f3c41096e2549672"
sha256: a76b3d53b9cf740ccff0e8edffc465b0fb81bcad090b83d8d1486dd70aadbd6a
url: "https://pub.dev"
source: hosted
version: "4.19.0"
version: "4.20.0"
riverpod:
dependency: transitive
description: