Commit graph

470 commits

Author SHA1 Message Date
NBA2K1
7245552ade Merge branch 'main' into Correct-directory 2025-07-24 13:01:42 +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
Schnitzel5
5932cf44f2 added sync for settings
- added option to toggle sync for history, update and settings
2025-07-21 23:37:51 +02:00
NBA2K1
976010f6f0 Merge remote-tracking branch 'upstream/main' into Correct-directory 2025-07-21 14:55:17 +02:00
Moustapha Kodjo Amadou
e290e0ad4a
Merge branch 'main' into feature/discord-rpc 2025-07-21 09:33:45 +01:00
Moustapha Kodjo Amadou
936a91403b
Merge pull request #520 from NBA2K1/better-UX
Improved UX for Migration, Anime Playback & Navigation
2025-07-21 09:14:41 +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
5a18d5f0f0 storage permission
potentially fixes #430
2025-07-16 18:21:04 +02:00
Moustapha Kodjo Amadou
1b9cc8d92d
Merge pull request #516 from NBA2K1/main
Fix Exception
2025-07-14 10:49:21 +01:00
NBA2K1
00462f3066 dispose! 2025-07-13 01:24:14 +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
3313e6e53a Don't focus searchbar when migrating
The searchbar already has input.
2025-07-12 20:26:31 +02:00
NBA2K1
aef659000d Desktop right-click for long press on chapter
just like with the LibraryGridView
2025-07-12 20:24:34 +02:00
NBA2K1
7a5c25b94f dispose 2025-07-12 20:10:04 +02:00
NBA2K1
1da0cdcdbf Fix Exception
type 'int' is not a subtype of type 'double?'
2025-07-12 04:28:33 +02:00
Moustapha Kodjo Amadou
8eaeca2123 Add subtitle support for video downloads and playback 2025-07-09 13:11:04 +01:00
Moustapha Kodjo Amadou
4e99bb9e58
Merge pull request #513 from NBA2K1/localArchive-tracker-button
Add tracker button to localArchive
2025-07-08 10:08:12 +01:00
Moustapha Kodjo Amadou
b14e198c54
Merge pull request #512 from NBA2K1/Fix-manga-delete
Fix delete "Downloaded episodes/chapters"
2025-07-08 10:07:36 +01:00
Moustapha Kodjo Amadou
b3f626fb32
Merge pull request #511 from NBA2K1/tracker-menu-theme-fix
Fix menu colors on theme change
2025-07-08 10:03:48 +01:00
NBA2K1
6788b73658 Delete whole imported manga
Delete whole imported manga when all chapters have been deleted.
+ Added a warning message and translations
2025-07-08 04:19:40 +02:00
NBA2K1
1e3e0ed179 Add tracker button to localArchive 2025-07-07 04:16:32 +02:00
NBA2K1
f4c040ccc4 Fix menu colors on theme change 2025-07-06 22:12:28 +02:00
NBA2K1
9a307c6007 remove redundant ternary
The else if condition is:
`itemType == ItemType.novel && chapter.url != null`

So the variable `headers` can never be `ref.read(headersProvider(source: manga.source!, lang: manga.lang!))` or `videoHeader`
2025-07-06 20:44:42 +02:00
NBA2K1
4d8131c725 Add some error handling 2025-07-06 20:37:02 +02:00
NBA2K1
c55c988188 Use read instead of watch 2025-07-06 20:35:51 +02:00
NBA2K1
40cd5eb081 remove == true 2025-07-06 20:05:01 +02:00
NBA2K1
43068bdd82 bulk write instead of one-by-one
reduces IO-operations.
2025-07-06 19:55:42 +02:00
Schnitzel5
bd17e1e9eb adjusted sync features 2025-07-04 02:24:01 +02:00
Schnitzel5
2c6e9439e9 adjusted mobile layout for tracker library
+ fixed MAL search bug
2025-06-28 22:11:28 +02:00
Schnitzel5
1bfb6fd0c1 adjusted tracker library sections 2025-06-27 15:57:42 +02:00
Schnitzel5
5fce50f0e0 adjusted tracker library
fixed UTF8 bug
fixed infinite loading
added search bar to migration screen
migration screen now considers the pinned sources option
library now shows if the items are locally tracked or not
2025-06-26 00:38:18 +02:00
Moustapha Kodjo Amadou
6bf9960dd5
Merge branch 'main' into enhance/two-way-tracker 2025-06-25 11:37:05 +01:00
NBA2K1
58b5050fff Make buttons white for consistency in white mode
The share-button on the top right and the show-episode-list-button next to it.
2025-06-24 22:50:59 +02:00
Schnitzel5
92c167d585 merged trackers together and added search 2025-06-22 23:17:55 +02:00
Moustapha Kodjo Amadou
e635e495b8
Merge pull request #491 from NBA2K1/main
Refactor: Consolidate _openCategory() Methods into Unified Dialog
2025-06-19 18:05:30 +01:00
Moustapha Kodjo Amadou
2e1cb0f8bc
Merge pull request #490 from Schnitzel5/feature/two-way-tracker
added two-way-tracking
2025-06-19 18:04:13 +01:00
NBA2K1
c58d0e0c77 Combine all three _openCategory() methods
As they all do the same.
2025-06-16 20:42:39 +02:00
NBA2K1
aa18b1ad3a Remove redundant operation
Not needed for this dialog, as the items here are already in the library (favorite = true) and dateAdded don't have to be updated.
2025-06-16 01:50:26 +02:00
Schnitzel5
06ca441644 added Kitsu and Anilist 2025-06-15 21:08:34 +02:00
NBA2K1
eaed214354 Fix "Set categories" in manga_detail_view 2025-06-15 16:21:27 +02:00
Schnitzel5
5dff4a1aa3 added two-way tracking 2025-06-09 02:26:31 +02:00
Schnitzel5
f7a124d72c added two-way-tracking 2025-06-09 02:22:33 +02:00
Schnitzel5
e994d3230a + 2025-06-08 19:11:31 +02:00
Schnitzel5
4c3b6bc430 + 2025-06-08 03:02:18 +02:00
Schnitzel5
a0ebe46fa0 added option to change hwdec 2025-06-07 01:46:30 +02:00
Schnitzel5
51352efd24 + 2025-06-06 00:22:31 +02:00
Schnitzel5
1b4177b59b + 2025-06-05 00:19:47 +02:00
Moustapha Kodjo Amadou
0f430f80d9 Fix indexing and path for downloaded chapter images and update padding logic 2025-06-04 17:28:31 +01:00
NBA2K1
88899f6e00
Merge branch 'kodjodevf:main' into main 2025-06-02 17:48:16 +02:00
NBA2K1
2482f6ec2e Change Button Behavior of "Edit Categories"
The Button "Edit Categories" (now called "set Categories"), now opens the category select menu instead of the category edit menu.

This makes more sense in the library item detail view. For example you have the categories "Watching" and "Finished". You just finished an anime and you want to change its category directly in the detail view. Now you can.

Before you had to exit the detail view, go in to the library view, long press the item, tap the category button and then edit it there.
2025-06-02 13:44:04 +02:00
Moustapha Kodjo Amadou
4d27a2c0e3 fix #468 2025-06-02 11:41:12 +01:00
Moustapha Kodjo Amadou
446ba5503d fix #474 2025-06-02 10:11:21 +01:00
NBA2K1
2822f9f17f Use the passed parameter Manga in _openCategory
- Use the passed parameter instead of widget.manga
- refactored the method a little to make it more readable.
2025-06-02 01:53:06 +02:00
Moustapha Kodjo Amadou
80efee40d1 dart format 2025-05-30 17:43:42 +01:00
Moustapha Kodjo Amadou
c24df38506 feat: Implement virtual scrolling for manga reader with optimized page management
- Added VirtualMangaList widget for displaying manga pages in a virtual scrolling list.
- Introduced VirtualPageManager to handle page loading, caching, and memory optimization.
- Created VirtualReaderView to integrate virtual scrolling with PhotoView for enhanced reading experience.
- Implemented page loading states and memory cleanup mechanisms in VirtualPageManager.
- Added debug information overlay for monitoring virtual page manager statistics.
- Enhanced user experience with callbacks for chapter transitions and page changes.
2025-05-28 14:56:05 +01:00
Moustapha Kodjo Amadou
c3ac07fa97 feat(reader): implement chapter transition view
- Introduced `TransitionViewPaged` and `TransitionViewVertical` widgets to handle chapter transitions.
- Created `ChapterTransitionPage` widget to display transition information between chapters.
- Updated reader view logic to incorporate transition pages when navigating chapters.
- Enhanced `UChapDataPreload` model to support transition states and next chapter information.

feat(localization): add chapter transition messages in multiple languages

fix(dependencies): update Dart SDK and dependencies

- Updated Dart SDK constraint to ^3.8.0.
- Changed `epubx` dependency to use the latest version from GitHub.
2025-05-27 17:30:31 +01:00
Moustapha Kodjo Amadou
45715cf488 fix 2025-05-20 15:26:46 +01:00
Moustapha Kodjo Amadou
2371d52661 update to d4rt v0.0.5 2025-05-18 13:20:35 +01:00
Schnitzel5
49914c5a53 added JSON structure check for repos 2025-05-13 16:03:21 +02:00
Moustapha Kodjo Amadou
9e9bbc785b fix 2025-05-10 17:13:58 +01:00
Moustapha Kodjo Amadou
f651d460d7 update d4rt to 0.0.2 & some fixes 2025-05-10 14:54:06 +01:00
Moustapha Kodjo Amadou
206a51df69 + 2025-05-10 12:26:02 +01:00
Moustapha Kodjo Amadou
c558c08376 migrate to d4rt package 2025-05-09 17:47:27 +01:00
Schnitzel5
24c4c89418 Merge branch 'temp/epub' into feature/epub 2025-05-07 22:25:11 +02:00
NBA2K1
1014c71f5c #148
Users can now add Mangas/Animes to a **manually** created Mangayomi/local folder.
Feature as described:
```
App Home Location/
  local/
    Manga Title/
      cover.jpg (optional)
      Chapter 1/
        1.jpg
        ...
      Chapter 2.cbz
      ...
    Anime Title/
      cover.png (optional)
      Episode 1.mp4
      Episode 2.mkv
```

The folder (if exist) will be scanned once per app start.

**Supported filetypes:** (taken from lib/modules/library/providers/local_archive.dart, line 98)
```
Videotypes:   mp4, mov, avi, flv, wmv, mpeg, mkv
Imagetypes:   jpg, jpeg, png, webp
Archivetypes: cbz, zip, cbt, tar
```
2025-05-02 13:44:37 +02:00
Schnitzel5
e2a862d30b limited the amount of downloading operations
+ fixed failed downloads caused by spaces in file path
2025-05-02 02:10:57 +02:00
Schnitzel5
cc5bb1cd2a separated download function 2025-04-30 00:39:10 +02:00
NBA2K1
2698db6085 Reduce I/O operations
getMangaChapterDirectory() now accepts an optional mangaMainDirectory
to avoid calling getMangaMainDirectory() and thus getDirectory() twice in places where both methods are called successively.
2025-04-29 18:47:43 +02:00
NBA2K1
46526c6b6b Update download_provider.dart
Move the getDirectory() call out of the for loop to enhance performance.
2025-04-29 18:18:40 +02:00
Schnitzel5
77b912d40e added download all option 2025-04-28 15:03:45 +02:00
Enbiya Olgun
4f1e2cb492 Remove code duplication + BugFix
Fixed a bug, where newly added animes to AniList would register as "Rewatching" instead of "Plan to watch".
2025-04-24 05:48:52 +02:00
Schnitzel5
7e9202ceeb added extension notes/hints 2025-04-23 23:33:18 +02:00
Enbiya Olgun
404e18c4a5 introduce mangaReaderProvider and refactor MangaReaderView
- Add `ChapterWithPages` model and `MangaReaderController` (FamilyAsyncNotifier)
  to load chapter + pages in a single provider (`mangaReaderProvider`)
- Replace synchronous Isar fetch in `MangaReaderView` with `ref.watch(mangaReaderProvider)`
- Unify loading, error, and data states using a shared `scaffoldWith` helper
- Remove duplicated `Scaffold`/`AppBar` boilerplate and inline SystemChrome restore logic
- Simplify error handling
2025-04-23 00:11:20 +02:00
Schnitzel5
479a89042e Merge branch 'temp/optimize' into optimize 2025-04-22 22:42:46 +02:00
Enbiya Olgun
2446756552 moved super() call of initState to top of method 2025-04-22 04:57:52 +02:00
Enbiya Olgun
3ecbef80b2 Fix Exception
At line 963, when scrolling too fast in manga reader and page didn't load before.
```
═══════ Exception caught by foundation library ════════════════════════════════
The following StateError was thrown while dispatching notifications for ValueNotifier<Iterable<ItemPosition>>:
Bad state: No element
```
2025-04-22 03:49:31 +02:00
Enbiya Olgun
59b2389631 Fix Exception
```
════════ Exception caught by widgets library ═══════════════════════════════════
The following UnsupportedError was thrown building CircularProgressIndicator(100.0%, dependencies: [InheritedCupertinoTheme, _InheritedTheme, _LocalizationsScope-[GlobalKey#3b6da]], state: _CircularProgressIndicatorState#8c03b(ticker inactive)):
Unsupported operation: Infinity or NaN toInt

The relevant error-causing widget was:
    CircularProgressIndicator CircularProgressIndicator (package:mangayomi/modules/manga/reader/widgets/circular_progress_indicator_animate_rotate.dart:56:27)
```
2025-04-22 03:23:12 +02:00
Enbiya Olgun
6d99d9a690 Implemented text scroll to chapter/episode list
title text scroll (like a marquee effect) when the chapter/episode name is too long.
2025-04-21 22:47:23 +02:00
Enbiya Olgun
ef4abc47f2 Fix #444 + Remove code duplication
- Tracker Kitsu now displays "ì" correctly
- Removed a lot of code duplication in Kitsu.
2025-04-21 19:10:09 +02:00
Enbiya Olgun
dfade2f78e Kitsu no shows "Start date" and "Finish Date" when date is not set
Instead of "01 Jan 1970" show "Start date" and "Finish Date" on kitsu. Just like MyAnimeList
2025-04-21 19:05:01 +02:00
Schnitzel5
90dadbd2c6 fixed last updated 2025-04-10 16:03:08 +02:00
Enbiya Olgun
f765581b37 Fixed the Archive creation
This fixes issue #435
2025-04-07 19:23:28 +02:00
Enbiya Olgun
5e5f4d34cf Pass the correct list to convertToCBZ
e.url are the original remote URLs
Now the correct list of local image file paths is being passed to convertToCBZ.
2025-04-07 19:17:39 +02:00
Schnitzel5
17c18bd79a added follow system theme 2025-03-24 21:33:01 +01:00
Moustapha Kodjo Amadou
08f686999b
Merge pull request #413 from Schnitzel5/feature/more-backup-support
added support for Kotatsu and Mihon backups
2025-03-19 13:11:25 +01:00
Schnitzel5
75feb2e6d0 added best-effort migration of read/watch progress 2025-03-16 02:31:13 +01:00
Enbiya Olgun
ccb5fb08e6 Only on wifi (+ ethernet)
Allows a download to be done while being on ethernet when "Only on wifi" option is enabled. #415

+ typo
2025-03-15 02:44:36 +01:00
Schnitzel5
7386175200 Merge branch 'temp/genre-quick-search' into feature/genre-quick-search 2025-03-09 21:21:50 +01:00
Schnitzel5
8b3910cf65 + 2025-03-09 21:20:42 +01:00
Moustapha Kodjo Amadou
5905480392 improve category 2025-03-09 14:59:24 +01:00
Moustapha Kodjo Amadou
2eb4545082 refactor: replace ListView with SuperListView across multiple widgets 2025-03-09 12:02:38 +01:00
Moustapha Kodjo Amadou
05cc1e5282 refactor: optimize source list handling in global search and migration screens 2025-03-09 11:40:21 +01:00
Schnitzel5
1d96ea29d5 added navigation 2025-03-06 16:00:38 +01:00
Schnitzel5
355f19dfe4 added auto-detect language for subtitles 2025-03-06 00:31:20 +01:00
Schnitzel5
52c5ac5b48 + 2025-03-05 15:51:26 +01:00
Schnitzel5
7be5075c53 + 2025-03-05 00:43:12 +01:00
Schnitzel5
b1636ad710 added chapter preview to migration 2025-03-02 21:21:17 +01:00
Schnitzel5
17128cccbd added options to migrate sources and clean the database 2025-03-02 01:22:41 +01:00
Moustapha Kodjo Amadou
3e401c8af2 dart format 2025-02-23 15:31:49 +01:00
Schnitzel5
dec2968921 optimized sync for library update 2025-02-15 17:30:38 +01:00
Schnitzel5
aa946c9d51 enhanced sync feature 2025-02-12 19:13:16 +01:00
Moustapha Kodjo Amadou
8384bcad51 co-written with @Schnitzel5 : update source fetching methods to utilize repositories 2025-02-12 11:04:46 +01:00
Moustapha Kodjo Amadou
3eeb4777a6 feat: improve chapter download 2025-01-30 15:09:47 +01:00
Moustapha Kodjo Amadou
d9e9e87926 fix #365 2025-01-22 18:25:28 +01:00
Moustapha Kodjo Amadou
a89e1b9ba7 refactor: simplify color filter handling in image view 2025-01-22 10:47:34 +01:00
Moustapha Kodjo Amadou
4265ba11fe refactor: remove unnecessary iOS view checks and adjust animation duration in reader view 2025-01-22 10:30:37 +01:00
Moustapha Kodjo Amadou
e901ef6281 refactor: update chapter handling to use IDs instead of objects in reader views 2025-01-22 10:02:44 +01:00
Moustapha Kodjo Amadou
e139dc3247 fix #362 2025-01-21 15:53:10 +01:00
Moustapha Kodjo Amadou
8c841baaa3 fix 2025-01-11 06:45:34 +01:00
kodjomoustapha
22cbf2dc44 fix Textfield not visible on mobile when typing 2025-01-09 17:16:00 +01:00
kodjomoustapha
6deffa4b97 refactor CodeEditor & update package 2025-01-08 12:51:16 +01:00
Schnitzel5
5ae7a8d581 added option to download novels 2025-01-07 23:37:29 +01:00
kodjomoustapha
32b10b8a30 - 2025-01-07 12:46:09 +01:00
kodjomoustapha
61734faed5 fix 2025-01-06 17:39:21 +01:00
kodjomoustapha
a9e91a1237 fix 2024-12-25 15:12:08 +01:00
kodjomoustapha
ff2bf3317d fix 2024-12-24 12:33:42 +01:00
kodjomoustapha
87ba9d1291 fix 2024-12-24 11:51:53 +01:00
Schnitzel5
84c82ba1ee show novel progress in percentage and fixed gesture detector 2024-12-22 02:39:31 +01:00
Schnitzel5
66e48612ae Merge branch 'feature/novel' into feature/light-novel 2024-12-21 21:22:30 +01:00
Schnitzel5
3bc85cf5aa saving novel chapter progress + removed sync for now 2024-12-21 21:18:21 +01:00
kodjomoustapha
cb103afbb0 + 2024-12-20 17:02:36 +01:00
Schnitzel5
34179a17a5 Merge branch 'feature/novel' into feature/light-novel 2024-12-20 15:59:06 +01:00
kodjomoustapha
a41ccaff22 fix & reformat 2024-12-20 10:15:15 +01:00
Moustapha Kodjo Amadou
9d712654a9
Merge branch 'main' into refactor/refactor-extensions-service 2024-12-20 09:15:26 +01:00
kodjomoustapha
f99bc996b1 fix 2024-12-19 17:52:47 +01:00
NBA2K1
03741343be bugfix?
Share button had no baseUrl on extensions without a apiUrl (Example AniWorld, AnimeToast).
tbh didn't even understand why there was a apiUrl check.
2024-12-16 21:54:59 +01:00
NBA2K1
c17e80a080 Adjusted filters and settings to Anime
+ added translations.
2024-12-16 20:17:26 +01:00
Yegor Shovkun
f0cf52813a refactor: refactor extension services 2024-12-14 13:55:40 +02:00
Yegor Shovkun
adbd1529f7 fix: cs fix (reformat with 120 line length) 2024-12-14 12:38:56 +02:00
kodjomoustapha
53300dafef Upgrade gradle config, Upgrade packages & some fix 2024-12-13 18:21:49 +01:00
kodjomoustapha
4748f3c699 fix 2024-12-13 10:31:57 +01:00
NBA2K1
e2e884db94 Issue #331
- Missed a concatenated path in manga_detail_view and in reader_view
- Made the Manga / Anime title selectable, so one can copy the title if needed
- Hidden the Backup share-button, because Linux has no share-feature and the button simply does nothing.
2024-12-11 21:26:18 +01:00
NBA2K1
2ae03021ad File path fixes (Issue #331)
- Instead of manually concatenating filepathes, it's using the path.join() function now.
- switched some if conditions, that had nothing in the if block, but in the else block, removing the redundant else block.
2024-12-10 00:35:09 +01:00
NBA2K1
3fe8f4266d Issue #313 fix
- Button now shows "Watch" if Anime.
- Translations in all available languages added
- Button now dynamically adjusts itself, no need for "isFr" and hardcoding the button size.
2024-12-07 03:32:27 +01:00
Schnitzel5
fb127f56b5 add novel support 2024-11-24 19:49:57 +01:00
Schnitzel5
ca16d34332 Merge branch 'feature/light-novel' into feature/novel 2024-11-22 00:28:24 +01:00
kodjomoustapha
ee1529be24 update 2024-11-20 17:59:12 +01:00
kodjomoustapha
fb9fdaad35 fix #274 2024-11-13 13:03:57 +01:00
kodjomoustapha
32afc3c71e add webview for linux 2024-11-13 10:53:36 +01:00
kodjomoustapha
a38bfc8b83 fix filter 2024-11-12 17:24:12 +01:00
Schnitzel5
3d29a12fc4 fix init settings 2024-11-09 00:27:11 +01:00
playerterra1
34a451d374 add novel support 2024-11-08 13:18:58 +00:00
kodjomoustapha
43bfcf706a + 2024-11-07 17:12:33 +01:00
kodjomoustapha
5ef0247d9c + 2024-11-01 15:20:30 +01:00
playerterra1
04ddbb6ac7 change data structure for novel type 2024-10-31 13:53:55 +00:00
kodjomoustapha
c10f7d120a control where to show cloudflare error message 2024-10-29 13:28:16 +01:00
Moustapha Kodjo Amadou
997f5aba54
Merge pull request #282 from Schnitzel5/fix/bottom-system-overlay
Fix/bottom system overlay
2024-10-13 19:12:32 +01:00
Schnitzel5
cfc2125dab adjust SafeArea for reader view 2024-10-13 19:24:56 +02:00