From 456589ccfbc68c8d355004262015ecb7a85bf84c Mon Sep 17 00:00:00 2001 From: NBA2K1 <78034913+NBA2K1@users.noreply.github.com> Date: Thu, 30 Apr 2026 17:28:30 +0200 Subject: [PATCH] Use ReaderModeExtension --- lib/models/settings.dart | 2 ++ lib/modules/manga/reader/reader_view.dart | 23 ++++++++--------------- 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/lib/models/settings.dart b/lib/models/settings.dart index 92e2231a..9f15eebc 100644 --- a/lib/models/settings.dart +++ b/lib/models/settings.dart @@ -1271,6 +1271,8 @@ extension ReaderModeExtension on ReaderMode { this == ReaderMode.horizontalContinuousRTL; bool get isRTL => this == ReaderMode.rtl || this == ReaderMode.horizontalContinuousRTL; + bool get isHorizontalPaged => + this == ReaderMode.ltr || this == ReaderMode.rtl; } enum NovelTextAlign { left, center, right, block } diff --git a/lib/modules/manga/reader/reader_view.dart b/lib/modules/manga/reader/reader_view.dart index c8da2853..26d63685 100644 --- a/lib/modules/manga/reader/reader_view.dart +++ b/lib/modules/manga/reader/reader_view.dart @@ -822,8 +822,7 @@ class _MangaChapterPageGalleryState }, onPageModeToggle: () async { final readerMode = ref.read(_currentReaderMode); - if (!(readerMode == ReaderMode.horizontalContinuous || - readerMode == ReaderMode.horizontalContinuousRTL)) { + if (!(readerMode?.isHorizontalContinuous ?? false)) { // Get the actual page index being viewed final actualIdx = _pageViewToActualIndex( _currentIndex!, @@ -976,8 +975,7 @@ class _MangaChapterPageGalleryState final currentReaderMode = ref.read(_currentReaderMode); int pagesLength = (_pageMode == PageMode.doublePage && - currentReaderMode != ReaderMode.horizontalContinuous && - currentReaderMode != ReaderMode.horizontalContinuousRTL) + !(currentReaderMode?.isHorizontalContinuous ?? false)) ? (pages.length / 2).ceil() : pages.length; if (_currentIndex! >= 0 && _currentIndex! < pagesLength) { @@ -1205,15 +1203,12 @@ class _MangaChapterPageGalleryState } _setReaderMode(readerMode, ref); - if (readerMode != ReaderMode.verticalContinuous && - readerMode != ReaderMode.webtoon) { + if (!readerMode.isVerticalContinuous) { _autoScroll.value = false; } _autoPagescroll(); if (_readerController.getPageLength(_chapterUrlModel.pageUrls) == 1 && - (readerMode == ReaderMode.ltr || - readerMode == ReaderMode.rtl || - readerMode == ReaderMode.vertical)) { + (readerMode.isHorizontalPaged || readerMode == ReaderMode.vertical)) { _onPageChanged(0); } } @@ -1362,7 +1357,7 @@ class _MangaChapterPageGalleryState } void _setReaderMode(ReaderMode value, WidgetRef ref) async { - if (value != ReaderMode.verticalContinuous && value != ReaderMode.webtoon) { + if (!value.isVerticalContinuous) { _autoScroll.value = false; } else { if (_autoScrollPage.value) { @@ -1390,7 +1385,7 @@ class _MangaChapterPageGalleryState _extendedController.jumpToPage(index); } - } else if (value == ReaderMode.ltr || value == ReaderMode.rtl) { + } else if (value.isHorizontalPaged) { if (mounted) { setState(() { if (value == ReaderMode.rtl) { @@ -1501,15 +1496,13 @@ class _MangaChapterPageGalleryState /// Uses ref.read() so cannot be called during dispose. bool get _isDoublePageActive => _pageMode == PageMode.doublePage && - ref.read(_currentReaderMode) != ReaderMode.horizontalContinuous && - ref.read(_currentReaderMode) != ReaderMode.horizontalContinuousRTL; + !(ref.read(_currentReaderMode)?.isHorizontalContinuous ?? false); /// Safe version of _isDoublePageActive that uses cached reader mode. /// Safe to call during dispose without Riverpod assertion errors. bool get _isDoublePageActiveSync => _pageMode == PageMode.doublePage && - _cachedReaderMode != ReaderMode.horizontalContinuous && - _cachedReaderMode != ReaderMode.horizontalContinuousRTL; + !(_cachedReaderMode?.isHorizontalContinuous ?? false); /// Converts a page view index (from ExtendedPageController) to the actual /// index in the [pages] array for double page mode.