Commit graph

149 commits

Author SHA1 Message Date
Moustapha Kodjo Amadou
ca51a38fbd fix #702 2026-04-15 12:53:50 +01:00
NBA2K1
1286afb3df change ref.watch to ref.read 2026-04-12 01:56:47 +02:00
NBA2K1
c468de6a16 make code more readable 2026-04-12 01:56:42 +02:00
NBA2K1
b0b48403fd Reduce FilterQuality
reduce FilterQuality during scroll/zoom for smoother rendering
2026-04-12 00:05:02 +02:00
NBA2K1
64a28d822d CropBorders performance+
call `_processCropBorders()` once, from _initCurrentIndex and after new pages arrive.

Also make _processCropBorders idempotent by the existing _cropBorderCheckList guard
2026-04-12 00:04:56 +02:00
NBA2K1
1735c80014 Fix page jumps
fix for the "jump back" bug that occurred when scrolling up in vertical continuous and webtoon reader modes.

- `ChapterPreloadManager` was maintaining its own `_currentIndex`.
- When prepending previous chapter pages, the index was being incremented
  twice (once in the manager + once in `_handlePrevChapterPrepended`).
- This caused `itemScrollController.jumpTo()` to overshoot, resulting in
  a visible jump forward (perceived as "jump back" while trying to scroll up).

- Removed all index management (`_currentIndex`, getter, setter, startIndex)
  from `ChapterPreloadManager` and `ReaderMemoryManagement`.
- `ChapterPreloadManager` is now a pure data container (only manages `_pages`).
- `_handlePrevChapterPrepended` now captures the **current visible top index**
  *before* prepending and adjusts the scroll position only once.
- `_readProgressListener` is now the single source of truth for `_currentIndex`.
- Removed stale `initialScrollIndex` logic from preload initialization.
2026-04-12 00:02:50 +02:00
NBA2K1
5b888fbe43 TODO comment, so we don't forget 2026-04-12 00:02:39 +02:00
NBA2K1
b972915391 Spelling error 2026-04-12 00:02:24 +02:00
NBA2K1
b760e37ff0 Revert "fix(reader): stabilize chapter progress and page cache writes"
This reverts commit 9f6bf93876.
2026-04-04 02:29:42 +02:00
MorningOctober
9f6bf93876 fix(reader): stabilize chapter progress and page cache writes
- prevent stale settings overwrites by reloading settings inside Isar write txn before updating chapterPageUrlsList

- guard getPageLength() against missing chapter entries and empty urls to avoid No element crashes

- simplify read-threshold calculation in setPageIndex() via totalPages/pagesRemaining for continuous and paged modes

- map visible continuous double-page indices to actual page indices in _readProgressListener before persisting progress

- snapshot item positions and clamp indices during fast scrolling to avoid volatile first/last access races
2026-03-28 13:49:39 +01:00
MorningOctober
7fca156df4 fix(reader): restore chapter read-state updates in continuous mode 2026-03-25 10:45:11 +01:00
Moustapha Kodjo Amadou
236a0cfc6d feat: add localization strings for statistics and reading time tracking #672
- Added new localization strings for total, mean per title, completion rate, watching time, reading time, average chapters per title, read percentage, and entries in multiple languages.
- Enhanced the History model to include readingTimeSeconds.
- Updated AnimeStreamController and ReaderController to track reading time and save it to history.
- Implemented reading time tracking in Anime and Novel reader views.
- Introduced statistics calculations for total reading time across histories.
- Updated statistics screen to display total reading time and average reading time per title.
2026-03-23 11:19:04 +01:00
Moustapha Kodjo Amadou
d02d688d1f Fix slider alignment and page jumps in double page mode 2026-03-18 11:50:13 +01:00
Moustapha Kodjo Amadou
d693445cb1 Fix double page index calculation: uniform pairs (1-2, 3-4, 5-6) 2026-03-18 10:13:56 +01:00
Moustapha Kodjo Amadou
f1dfbbaefc Fix #480/#165 #479 #443 #541 #554 #452: reader and download fixes
- #480/#165: Fix double page mode chapter navigation index conversion
- #479: Fix page jump when switching single/double page mode
- #443: Clear zoom cache on page change for swipe-back
- #541: Add shift-click range selection for chapters (desktop)
- #554: Auto-clean orphaned download records, cascade delete
- #452: Add horizontal continuous RTL reader mode
2026-03-18 09:47:41 +01:00
Moustapha Kodjo Amadou
0abd706ec8 fix #670 2026-03-17 11:01:12 +01:00
Moustapha Kodjo Amadou
95a55d5f81 feat: Implement upcoming manga calendar feature
- Added UpcomingUIModel for managing upcoming manga list items with headers and items.
- Introduced CalendarDay widget to display individual days with event indicators.
- Created CalendarHeader widget for navigating between months.
- Developed CalendarIndicator for visualizing events on specific days.
- Implemented UpcomingCalendar to manage the calendar view and event loading.
- Added UpcomingItem widget for displaying individual upcoming manga with cover images.
- Introduced FetchInterval utility to calculate fetch intervals based on chapter upload dates.
- Refactored updateMangaDetail to utilize FetchInterval for smart update days.
- Enhanced MedianExtension to ensure correct median calculation.
- Removed unused imports and commented-out code for cleaner implementation.
2026-03-05 12:05:29 +01:00
Moustapha Kodjo Amadou
87028ea8f5 feat(reader): implement bidirectional chapter preloading and enhance memory management 2026-03-04 22:30:55 +01:00
Moustapha Kodjo Amadou
2f0fc85316 feat(reader): add navigation layout options and settings for screen behavior
- Implemented multiple navigation layouts for the reader, including L-shaped, Kindle, Edge, Right & Left, and Disabled modes.
- Added settings for keeping the screen on, showing page gaps, and adjusting webtoon side padding.
- Enhanced the reader settings modal to include new options and improved UI for navigation layout selection.
- Color filters: invert/gray/BCS
2026-03-04 16:04:07 +01:00
Moustapha Kodjo Amadou
1256e608c7 Refactor 2026-03-02 11:49:19 +01:00
Schnitzel5
ac21eae8d4 small adjustments for a better reading experience of many single pages in a row
- to prevent old entries (before sourceId was introduced) from accidentally using conflicting sources with the same name even if they are not installed
2026-01-30 23:15:26 +01:00
Moustapha Kodjo Amadou
19a051b660 feat: add updatePageCropImage method for chapter page cropping 2025-12-18 17:03:06 +01:00
Moustapha Kodjo Amadou
8fe910900b + 2025-12-14 13:17:47 +01:00
Moustapha Kodjo Amadou
1e469614d9 Chapter jump fix in vertical continuous mode 2025-12-14 13:16:19 +01:00
Moustapha Kodjo Amadou
4e9af30e8e feat(reader): add page indicator, app bar, bottom bar, gesture handler, and settings modal
- PageIndicator widget to display current page and total pages.
- Created ReaderAppBar for navigation and chapter information.
- ReaderBottomBar for page navigation and settings access.
- Added ReaderGestureHandler for managing tap zones and gestures.
- ReaderSettingsModal for user-configurable settings.
2025-12-05 16:54:10 +01:00
Moustapha Kodjo Amadou
57fcb9e1c9 chore: update dependencies 2025-11-28 14:31:39 +01:00
Whiskas101
18e8abce94 fix: dangling objects, removed old state provider for getPagesNumber 2025-11-20 22:24:27 +05:30
Moustapha Kodjo Amadou
fd615bd44b refactor: streamline archive import process and enhance cover image handling 2025-11-11 13:13:35 +01:00
Moustapha Kodjo Amadou
b1b71ea4d3 Improve auto-scroll condition in manga and novel readers 2025-11-08 20:36:28 +01:00
Moustapha Kodjo Amadou
6eda6de614 Refactor auto-scroll handling and improve tap-to-scroll settings in novel reader 2025-11-08 20:32:25 +01:00
Moustapha Kodjo Amadou
e8384f51fc Refactor 2025-11-06 16:51:01 +01:00
Moustapha Kodjo Amadou
6e94632417 Add image cropping functionality with isolate support and optimize crop border processing 2025-11-06 16:47:32 +01:00
Moustapha Kodjo Amadou
f483dfab2b Refactor manga reader components: replace VirtualReaderView with WebtoonView and remove unused virtual scrolling files 2025-11-06 11:48:12 +01:00
Moustapha Kodjo Amadou
8eea4eaa4d + 2025-11-05 12:52:09 +01:00
Moustapha Kodjo Amadou
1f2b143585 Refactor 2025-11-05 12:21:36 +01:00
Moustapha Kodjo Amadou
8213a36895 Update 2025-10-29 13:25:52 +01:00
Moustapha Kodjo Amadou
430e81e021 Refactor and update dependencies for Isar and Riverpod 2025-10-29 13:08:42 +01:00
Moustapha Kodjo Amadou
2ff20c35cc + 2025-10-22 10:51:25 +01:00
Moustapha Kodjo Amadou
600a699708 feat: Add use sourceId property if not null to get source model 2025-08-28 12:12:23 +01:00
Schnitzel5
790519fcae fixed ShareX for iPad
https://github.com/fluttercommunity/plus_plugins/tree/main/packages/share_plus/share_plus#ipad
2025-08-27 01:40:31 +02:00
Moustapha Kodjo Amadou
0452576de6
Merge branch 'main' into enhance/mpv 2025-08-21 16:35:08 +01:00
Schnitzel5
226c6b145e allow to swipe pages even if zoomed in 2025-08-15 22:07:44 +02:00
Schnitzel5
38728ce0cb Merge branch 'temp/mpv-anime4k' into feature/mpv-anime4k 2025-07-24 22:31:58 +02:00
NBA2K1
83934d7f35 Fix iOS and Android
The initialization of discordRPC on iOS and Android was leading to a grey screen (UnimplementedError), preventing the app to paint the Flutter UI.
The flutter_discord_rpc is only available on macOS, Linux and Windows.
2025-07-24 01:45:58 +02:00
Schnitzel5
5b56578029 separated some classes from reader_view 2025-07-23 03:16:24 +02:00
Moustapha Kodjo Amadou
e290e0ad4a
Merge branch 'main' into feature/discord-rpc 2025-07-21 09:33:45 +01:00
Moustapha Kodjo Amadou
539fd186cb
Merge pull request #519 from NBA2K1/Properly-dispose
Properly dispose
2025-07-19 15:30:59 +01:00
Schnitzel5
d139042241 added discord rpc 2025-07-18 01:02:59 +02:00
NBA2K1
f3ef7791a6 Save lastPageRead before system kills app
If the app is going to background or is about to be killed, the lastPageRead value is going to be saved, so the progress is not lost if the user leaves the app and the system kills it.
2025-07-12 20:31:19 +02:00
NBA2K1
7a5c25b94f dispose 2025-07-12 20:10:04 +02:00