diff --git a/lib/modules/manga/reader/managers/chapter_preload_manager.dart b/lib/modules/manga/reader/managers/chapter_preload_manager.dart index 9f2a696e..b9d3a883 100644 --- a/lib/modules/manga/reader/managers/chapter_preload_manager.dart +++ b/lib/modules/manga/reader/managers/chapter_preload_manager.dart @@ -192,6 +192,14 @@ class ChapterPreloadManager { return true; } + /// Updates the cropImage for a page at the given index. + void updatePageCropImage(int index, Uint8List? cropImage) { + if (index >= 0 && index < _pages.length) { + _pages[index].cropImage = cropImage; + onPagesUpdated?.call(); + } + } + /// Gets a unique identifier for a chapter. String? _getChapterIdentifier(Chapter? chapter) { if (chapter == null) return null; diff --git a/lib/modules/manga/reader/mixins/reader_memory_management.dart b/lib/modules/manga/reader/mixins/reader_memory_management.dart index 81d58aae..2cd6433f 100644 --- a/lib/modules/manga/reader/mixins/reader_memory_management.dart +++ b/lib/modules/manga/reader/mixins/reader_memory_management.dart @@ -86,6 +86,11 @@ mixin ReaderMemoryManagement { return _preloadManager.addLastChapterTransition(chapter); } + /// Updates the cropImage for a page at the given index. + void updatePageCropImage(int index, Uint8List? cropImage) { + _preloadManager.updatePageCropImage(index, cropImage); + } + /// Disposes the preload manager and clears all cached data. Future disposePreloadManager() async { if (!_isPreloadManagerInitialized) return; diff --git a/lib/modules/manga/reader/reader_view.dart b/lib/modules/manga/reader/reader_view.dart index f3a71b43..315ea4ac 100644 --- a/lib/modules/manga/reader/reader_view.dart +++ b/lib/modules/manga/reader/reader_view.dart @@ -1207,9 +1207,7 @@ class _MangaChapterPageGalleryState cropBordersProvider(data: pages[index], cropBorder: true).future, ); if (mounted) { - setState(() { - pages[index] = pages[index]..cropImage = value; - }); + updatePageCropImage(index, value); } } } @@ -1225,9 +1223,7 @@ class _MangaChapterPageGalleryState cropBordersProvider(data: pages[i], cropBorder: true).future, ); if (mounted) { - setState(() { - pages[i] = pages[i]..cropImage = value; - }); + updatePageCropImage(i, value); } } }