From 8adf61b54fdf11e1e93b177e5385999939d26516 Mon Sep 17 00:00:00 2001 From: nyne Date: Fri, 21 Feb 2025 13:00:15 +0800 Subject: [PATCH] Fix multi-image mode --- lib/pages/reader/images.dart | 2 +- lib/pages/reader/reader.dart | 21 +++++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/lib/pages/reader/images.dart b/lib/pages/reader/images.dart index a90382b..dba0e70 100644 --- a/lib/pages/reader/images.dart +++ b/lib/pages/reader/images.dart @@ -232,7 +232,7 @@ class _GalleryModeState extends State<_GalleryMode> ImageProvider imageProvider = _createImageProviderFromKey(imageKey, context); return Expanded( - child: Image( + child: ComicImage( image: imageProvider, fit: BoxFit.contain, ), diff --git a/lib/pages/reader/reader.dart b/lib/pages/reader/reader.dart index 17d68e3..892b2e7 100644 --- a/lib/pages/reader/reader.dart +++ b/lib/pages/reader/reader.dart @@ -114,6 +114,7 @@ class _ReaderState extends State with _ReaderLocation, _ReaderWindow { late ReaderMode mode; int get imagesPerPage { + if (mode.isContinuous) return 1; if (isPortrait) { return appdata.settings['readerScreenPicNumberForPortrait'] ?? 1; } else { @@ -126,12 +127,6 @@ class _ReaderState extends State with _ReaderLocation, _ReaderWindow { bool get isPortrait => MediaQuery.of(context).orientation == Orientation.portrait; - @override - void didChangeDependencies() { - super.didChangeDependencies(); - _checkImagesPerPageChange(); - } - void _checkImagesPerPageChange() { int currentImagesPerPage = imagesPerPage; if (_lastImagesPerPage != currentImagesPerPage) { @@ -173,13 +168,10 @@ class _ReaderState extends State with _ReaderLocation, _ReaderWindow { } } if (widget.initialPage != null) { - page = (widget.initialPage! / imagesPerPage).ceil(); + page = widget.initialPage!; } mode = ReaderMode.fromKey(appdata.settings['readerMode']); history = widget.history; - _lastImagesPerPage = isPortrait - ? appdata.settings['readerScreenPicNumberForPortrait'] ?? 1 - : appdata.settings['readerScreenPicNumberForLandscape'] ?? 1; Future.microtask(() { updateHistory(); }); @@ -194,6 +186,15 @@ class _ReaderState extends State with _ReaderLocation, _ReaderWindow { super.initState(); } + @override + void didChangeDependencies() { + super.didChangeDependencies(); + _lastImagesPerPage = imagesPerPage; + if (imagesPerPage != 1) { + page = (widget.initialPage! / imagesPerPage).ceil(); + } + } + void setImageCacheSize() async { var availableRAM = await MemoryInfo.getFreePhysicalMemorySize(); if (availableRAM == null) return;