Commit graph

979 commits

Author SHA1 Message Date
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
6a23409560 Fix delete "Downloaded episodes/chapters"
The delete function was only for imported mangas.
Now it checks if it was imported or downloaded and deletes accordingly.
2025-07-07 04:14:58 +02:00
NBA2K1
f4c040ccc4 Fix menu colors on theme change 2025-07-06 22:12:28 +02:00
NBA2K1
c7300797dc Update reader_screen.dart 2025-07-06 21:40:34 +02:00
NBA2K1
31ead933ab Use read instead of watch 2025-07-06 21:07:21 +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
NBA2K1
ce888c162e reduce code duplication 2025-07-06 18:37:35 +02:00
Moustapha Kodjo Amadou
085be60d58
Merge pull request #508 from NBA2K1/Fix-labels
Fix labels on navigation bar [based on PR #506]
2025-07-06 17:30:26 +01:00
NBA2K1
8aea458033 remove redundant import 2025-07-06 16:48:45 +02:00
NBA2K1
24e7bce508 clear cache when changing language
To update the navigation bar labels
2025-07-06 16:48:34 +02:00
NBA2K1
57143bca2b bulk write instead of one-by-one
reduces IO-operations.
2025-07-06 14:28:52 +02:00
NBA2K1
07941ea370 Fix "Read" and "Unread" button 2025-07-06 14:02:23 +02:00
Schnitzel5
6baecaa59b bug fixes 2025-07-06 03:31:27 +02:00
Schnitzel5
24213445c8 fixed upsert 2025-07-05 13:09:51 +02:00
Schnitzel5
d39a3129cd Merge branch 'temp/sync-server' into rework/sync-server 2025-07-05 03:00:01 +02:00
Schnitzel5
e1cecd8e37 reworked sync 2025-07-05 02:58:42 +02:00
Schnitzel5
bd17e1e9eb adjusted sync features 2025-07-04 02:24:01 +02:00
Schnitzel5
c680427c0c added option to disable merged library navigation 2025-07-03 02:44:15 +02:00
NBA2K1
4a986d4c15 Remove check
- Remove the enableAniSkipStateProvider check, because it is already being checked by the caller (anime_player_view.dart, initState() line 353).

- Change ref.watch() to ref.read() as the user cannot change its value without exiting the video player. ref.watch() is meant to be used within reactive contexts.
2025-06-30 18:01:58 +02:00
NBA2K1
b1560d3eea
Merge branch 'kodjodevf:main' into main 2025-06-30 17:05:11 +02:00
Moustapha Kodjo Amadou
9f5e43c58c
Merge pull request #501 from Schnitzel5/enhance/two-way-tracker
adjusted tracker library + bug fixes
2025-06-30 09:11:12 +01:00
NBA2K1
49f77febe4 Don't allow zooming
When these methods were used to display images (migration screen, history screen, etc) the images (anime/manga covers and extension icons) were zoomable. You could (on a touch device) pinch to zoom.
And with the mouse you could get your cursor an on image and scroll up to zoom out and scroll down to zoom in.
This was not necessary confusing for the user.
2025-06-29 20:30:16 +02:00
Schnitzel5
76297c3b45 + 2025-06-29 00:50:10 +02:00
Schnitzel5
b2d29e32d6 added repo name to extension list 2025-06-29 00:24:06 +02:00
Schnitzel5
e33247e445 adjusted navigations 2025-06-28 23:17:57 +02:00
Schnitzel5
dc5cc20d0c added new navigation for library
fixed router hidden routes
2025-06-28 23:05:38 +02:00
Schnitzel5
2c6e9439e9 adjusted mobile layout for tracker library
+ fixed MAL search bug
2025-06-28 22:11:28 +02:00
Schnitzel5
79da1d2678 fixed init location 2025-06-28 00:48:09 +02:00
NBA2K1
a97f68d94d comment for more clarity 2025-06-27 21:05:11 +02:00
NBA2K1
fbdbbe9766 Update _setSkipPhase()
Setting a `ValueNotifier` to the same value still triggers its listeners.
Only update `_skipPhase.value`, when it really changs.
2025-06-27 19:22:31 +02:00
Schnitzel5
1bfb6fd0c1 adjusted tracker library sections 2025-06-27 15:57:42 +02:00
Moustapha Kodjo Amadou
4d39044511 update: bump d4rt package version to 0.0.9 2025-06-27 11:56:02 +01:00
NBA2K1
ba758a6175 remove redundant import
The import of 'package:hive/hive.dart' is unnecessary
because all of the used elements are also provided
by the import of 'package:hive_flutter/adapters.dart'.
2025-06-27 08:37:05 +02:00
NBA2K1
d21dbbbc6b Fix Fullscreen mode 2025-06-27 08:35:01 +02:00
NBA2K1
e9dfb516ab unify position stream listeners
Collapse three `.position.listen` callbacks into a single
subscription to reduce per‑tick overhead and centralize all
position‑driven updates (current position, subtitle/audio init,
and skip‑phase logic) in one handler.
2025-06-27 01:52:50 +02:00
NBA2K1
43c90a7777 collapse the many nested builders
flatten builders into a single ValueListenableBuilder.
2025-06-27 00:20:01 +02:00
Schnitzel5
304f653011 adjusted fetch tracking data 2025-06-27 00:08:03 +02:00
NBA2K1
c9fdccfacb build widget only when "Enable AniSkip" is true
The variables `enableAniSkip`, `enableAutoSkip`,
`aniSkipTimeoutLength` and `skipIntroLength` are global settings.
The user cannot change them inside the video player.
So there's no need to watch them inside the _currentPosition listener.
2025-06-26 20:39:35 +02:00
NBA2K1
89af73e9b2 remove redundant if-condition 2025-06-26 19:34:41 +02:00
NBA2K1
cdc21fd4ad Only initAniSkip if "Enable AniSkip" is true 2025-06-26 19:27:20 +02:00
NBA2K1
98c40ff39f set fullscreen only when the video starts playing 2025-06-26 19:24:57 +02:00
NBA2K1
eab52c6677 remove redundant import 2025-06-26 19:23:55 +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
Schnitzel5
07d6cf0868 added refresh to tracker library 2025-06-25 00:04:41 +02:00
Schnitzel5
b01ae9d909 added Hive for caching 2025-06-24 22:59:58 +02:00
NBA2K1
9ccd2e1924 Partially revert changes in 181c3b5 2025-06-24 22:55:25 +02: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
Moustapha Kodjo Amadou
181c3b5ccc
Merge branch 'main' into fix/increase-protobuf-limit 2025-06-24 11:59:40 +01:00
Schnitzel5
0801b2b88f fixed some tracker provider bugs 2025-06-24 00:35:21 +02:00
Schnitzel5
92c167d585 merged trackers together and added search 2025-06-22 23:17:55 +02:00
Schnitzel5
bc4d7aadb0 increased protobuf limit to 250 MB 2025-06-22 00:06:31 +02:00
NBA2K1
a5168a6a2b Release file lock by closing InputStream
Fix issue where backup file remained locked by closing InputStream after use
2025-06-20 21:50:47 +02:00
Moustapha Kodjo Amadou
2b8625bf0e Refactor scroll behavior to improve accessibility and support for various input devices 2025-06-20 16:51:14 +01:00
Schnitzel5
6088ac22f4 adding search to 2-way track screen 2025-06-20 00:29:02 +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
ef13473137 - 2025-06-15 21:11:41 +02:00
Schnitzel5
06ca441644 added Kitsu and Anilist 2025-06-15 21:08:34 +02:00
NBA2K1
06ac796032 Fix potential bug + Remove redundant code
Before fixing the Category Removal Bug (commit 58537281), the "Default" Category would be empty when removing a populated category.

So when there is only one Category left, and the user hides that one Category, `tabCount` would be <= 0, leading to an Exception:

```
_AssertionError ('package:flutter/src/material/tab_controller.dart': Failed assertion: line 116 pos 15: 'initialIndex >= 0 && (length == 0 || initialIndex < length)': is not true.)
```

Now there is a check (`tabCount <= 0`), that IF tabCount is ever <= 0, it would show `_bodyWithoutCategories`.
2025-06-15 18:40:41 +02:00
NBA2K1
585372816d Fix Category Removal Bug
When removing a category, the items inside the category were not being updated, removing the link to the removed category.
That lead to the items disappearance from the library.

Now the reference from the item to the deleted category is deleted. Those items show up in the "Default" category.
2025-06-15 17:20:51 +02:00
NBA2K1
eaed214354 Fix "Set categories" in manga_detail_view 2025-06-15 16:21:27 +02:00
NBA2K1
a5de9a7102 Fix bug introduced in commit 8bc8a99a 2025-06-15 14:07:58 +02:00
Schnitzel5
7c8faf8bed added info card 2025-06-15 01:30:51 +02:00
Schnitzel5
24eb09b701 adding Kitsu 2025-06-12 00:18:14 +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
Moustapha Kodjo Amadou
183e88ebd0
Merge pull request #484 from NBA2K1/main
Fixes, Refactors, and Async Improvements
2025-06-07 13:37:57 +01:00
NBA2K1
fecda49373 Merge Provider => Remove Code Duplication
Merge `fetchMangaSourcesListProvider`, `fetchAnimeSourcesListProvider` and `fetchNovelSourcesListProvider` into a single Provider, `FetchItemSourcesListProvider`, reducing code duplication.
2025-06-07 03:24:39 +02:00
NBA2K1
138e2887e0 Fix Extension Installation
There was a bug when uninstalling an extension and trying to reinstall it, it didn't install.
You had to restart the app to reinstall the same extension again.
Now the provider is invalidated when reinstalling an uninstalled extension,
so the fetch logic is triggered correctly. Prevents stale cache issues from
Riverpod's keepAlive behavior.
2025-06-07 02:37:51 +02:00
Schnitzel5
a0ebe46fa0 added option to change hwdec 2025-06-07 01:46:30 +02:00
NBA2K1
8bc8a99af8 Make the write transaction fully async
Mixing `writeTxnSync` with `await` was incorrect.
writeTxnSync does not support awaiting async functions.
2025-06-06 23:27:05 +02:00
NBA2K1
3eb0dc2534 Fix Exception
```
Exception has occurred.
ArgumentError (Invalid argument(s): No host specified in URI )
```

at line 79:
`final req = await http.get(Uri.parse(source.sourceCodeUrl!));`
when source.sourceCodeUrl is empty.
2025-06-06 21:43:50 +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
d4a0354143 fix file path handling 2025-06-04 17:41:29 +01: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
7e1eb44667 Fix #478 2025-06-04 16:21:14 +02:00
Schnitzel5
eeed17c264 adding Trakt 2025-06-04 15:39:14 +02:00
Schnitzel5
f152339162 + 2025-06-03 23:49:14 +02:00
Schnitzel5
db209fea68 + 2025-06-02 23:36:04 +02:00
NBA2K1
f6945cf189 Fix Exception _AssertionError
When customizing navigation, toggling one item off.

```

Exception has occurred.
_AssertionError ('package:flutter/src/material/navigation_rail.dart': Failed assertion: line 112 pos 15: 'selectedIndex == null || (0 <= selectedIndex && selectedIndex < destinations.length)': is not true.)

```
2025-06-02 17:49:44 +02:00
NBA2K1
7eec89b1b9 Add Switch to automatically check for updates
Instead of checking for updates by default, the user now has the choice to disable automatic app update checks.
2025-06-02 17:49:16 +02: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
538f87630c + 2025-06-02 12:41:06 +01:00
Moustapha Kodjo Amadou
664a1f6dcf + 2025-06-02 12:30:47 +01:00
Moustapha Kodjo Amadou
fdb47334db fix #464 2025-06-02 12:17:54 +01:00
Moustapha Kodjo Amadou
4d27a2c0e3 fix #468 2025-06-02 11:41:12 +01:00
Moustapha Kodjo Amadou
1c256f884d fix 2025-06-02 10:37:01 +01:00