Commit graph

1280 commits

Author SHA1 Message Date
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
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
Moustapha Kodjo Amadou
d5247a8183 fix 2025-06-02 10:14:39 +01:00
Moustapha Kodjo Amadou
446ba5503d fix #474 2025-06-02 10:11:21 +01:00
Moustapha Kodjo Amadou
87fd4ef340 fix Undefined variable for client 2025-06-02 10:10:14 +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
NBA2K1
b3ffc3ea67 Apply System Theme After Backup Restore 2025-06-02 00:08:41 +02:00
NBA2K1
00c666fe3f Fix Exception when leaving Code Editor
When leaving the Code Editor of certain Extensions, this Exception would throw:
```
[ERROR:flutter/runtime/dart_vm_initializer.cc(40)] Unhandled Exception: Runtime Error: Undefined variable: source (Original error: Undefined property 'source' on Madara.)
#0      InterpreterVisitor.visitSimpleIdentifier (package:d4rt/src/interpreter_visitor.dart:393:7)
interpreter_visitor.dart:393
#1      SimpleIdentifierImpl.accept (package:analyzer/src/dart/ast/ast.dart:16123:50)
ast.dart:16123
#2      InterpreterVisitor.visitPostfixExpression (package:d4rt/src/interpreter_visitor.dart:3930:41)
interpreter_visitor.dart:3930
#3      PostfixExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:14311:50)
ast.dart:14311
#4      InterpreterVisitor._evaluateArguments (package:d4rt/src/interpreter_visitor.dart:5569:23)
interpreter_visitor.dart:5569
#5      InterpreterVisitor.visitMethodInvocation (package:d4rt/src/interpreter_visitor.dart:2178:13)
interpreter_visitor.dart:2178
#6      MethodInvocationImpl.accept (package:analyzer/src/dart/ast/ast.dart:12246:50)
ast.dart:12246
#7      InterpretedClass.createAndInitializeInstance (package:d4rt/src/runtime_types.dart:232:53)
runtime_types.dart:232
#8      InterpretedClass.call (package:d4rt/src/runtime_types.dart:299:22)
runtime_types.dart:299
#9      InterpreterVisitor.visitMethodInvocation (package:d4rt/src/interpreter_visitor.dart:2161:28)
interpreter_visitor.dart:2161
#10     MethodInvocationImpl.accept (package:analyzer/src/dart/ast/ast.dart:12246:50)
ast.dart:12246
#11     InterpreterVisitor.visitVariableDeclarationList (package:d4rt/src/interpreter_visitor.dart:3026:42)
interpreter_visitor.dart:3026
#12     VariableDeclarationListImpl.accept (package:analyzer/src/dart/ast/ast.dart:18695:15)
ast.dart:18695
#13     InterpreterVisitor.visitVariableDeclarationStatement (package:d4rt/src/interpreter_visitor.dart:135:27)
interpreter_visitor.dart:135
#14     VariableDeclarationStatementImpl.accept (package:analyzer/src/dart/ast/ast.dart:18753:15)
ast.dart:18753
#15     InterpreterVisitor.executeBlock (package:d4rt/src/interpreter_visitor.dart:66:33)
interpreter_visitor.dart:66
#16     InterpretedFunction.call (package:d4rt/src/callable.dart:589:36)
callable.dart:589
#17     D4rt.execute (package:d4rt/src/d4rt_base.dart:220:43)
d4rt_base.dart:220
#18     DartExtensionService._executeLib (package:mangayomi/eval/dart/service.dart:24:17)
service.dart:24
#19     DartExtensionService.getSourcePreferences (package:mangayomi/eval/dart/service.dart:179:25)
service.dart:179
#20     getSourcePreference (package:mangayomi/services/get_source_preference.dart:6:38)
get_source_preference.dart:6
#21     _ExtensionDetailState.build.<anonymous closure>.<anonymous closure> (package:mangayomi/modules/browse/extension/extension_detail.dart:173:44)
extension_detail.dart:173
#22     State.setState (package:flutter/src/widgets/framework.dart:1199:30)
framework.dart:1199
#23     _ExtensionDetailState.build.<anonymous closure> (package:mangayomi/modules/browse/extension/extension_detail.dart:171:23)
extension_detail.dart:171
<asynchronous suspension>
```
2025-06-01 19:52:21 +02:00
NBA2K1
7c5a7cb2e5 Implement QOL-feature
If the last episode of an Anime has ended, exit fullscreen mode.
2025-06-01 18:29:31 +02:00
NBA2K1
3a1d568a42 Center the Discord Icon in the button
And adjust the GitHub button size to match the now larger Discord button.
2025-06-01 01:05:34 +02:00
NBA2K1
34f0be6d9a Update router.dart
Fix exception when using "Select Widget Mode" of the Flutter Inspector:

```
Exception has occurred.
FlutterError (Tried to modify a provider while the widget tree was building.
If you are encountering this error, chances are you tried to modify a provider
in a widget life-cycle, such as but not limited to:
- build
- initState
- dispose
- didUpdateWidget
- didChangeDependencies

Modifying a provider inside those life-cycles is not allowed, as it could
lead to an inconsistent UI state. For example, two widgets could listen to the
same provider, but incorrectly receive different states.

To fix this problem, you have one of two solutions:
- (preferred) Move the logic for modifying your provider outside of a widget
  life-cycle. For example, maybe you could update your provider inside a button's
  onPressed instead.

- Delay your modification, such as by encapsulating the modification
  in a `Future(() {...})`.
  This will perform your update after the widget tree is done building.)
```
2025-05-31 17:43:59 +02:00
NBA2K1
2ba453a394 Update edit_code.dart 2025-05-31 16:35:35 +02:00
NBA2K1
62c7099a0f Update edit_code.dart
Change keyboard type to alphanumeric
2025-05-31 15:29:19 +02:00
Moustapha Kodjo Amadou
5ee30851d5 fix #467 2025-05-31 01:16:33 +01:00
Moustapha Kodjo Amadou
01e03f033c fix #466 2025-05-30 19:10:10 +01:00
Moustapha Kodjo Amadou
80efee40d1 dart format 2025-05-30 17:43:42 +01:00
Moustapha Kodjo Amadou
eabecdef5e
Merge pull request #465 from kodjodevf/refactor_reader_view
Refactor reader view
2025-05-30 16:54:26 +01:00
NBA2K1
e9af533a8d Fix Kitsu
Resolved an issue where items could not be added to the tracker due to the use of an incorrect ID. This caused `parseTrackResponse()` to fail in locating the 'included' key within `jsonResponse`, leading to a null return. As a result, an exception was thrown in `tracker_widget.dart` at line 134 when accessing `widget.trackRes.title!,` triggering a _TypeError (Null check operator used on a null value)_.
2025-05-28 20:04:55 +02: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
NBA2K1
6b81d0fc02 Update storage_provider.dart
- Move manageExternalStorage inside if (android), as it is Android only.
- Cache permission state, to only check for permission once per app start preventing redundant checks.
- Made `initDB` fully async to enhance efficiency and avoid sync operations
2025-05-26 15:37:09 +02:00
Moustapha Kodjo Amadou
6ea8d088ed + 2025-05-22 18:05:08 +01:00
Moustapha Kodjo Amadou
962bab1cdd upgrade 2025-05-21 18:16:18 +01:00
Moustapha Kodjo Amadou
45715cf488 fix 2025-05-20 15:26:46 +01:00
NBA2K1
41618fa8ce Merge remote-tracking branch 'upstream/main' 2025-05-19 00:51:19 +02:00
Moustapha Kodjo Amadou
2371d52661 update to d4rt v0.0.5 2025-05-18 13:20:35 +01:00
NBA2K1
3060663e2b Merge remote-tracking branch 'upstream/main' 2025-05-18 01:50:42 +02:00
NBA2K1
3709163a49 Reduce Code Duplication
Extract `CustomMaterialPlayOrPauseButton` class from *mobile.dart* and `CustomMaterialDesktopPlayOrPauseButton` class from *desktop.dart* into *play_or_pause_button.dart* to eliminate code duplication and improve maintainability.
2025-05-18 01:47:12 +02:00
NBA2K1
711e5ea6ae Fix UI bug
Fix playback time display exceeding max duration when skipping near video end
2025-05-17 22:07:50 +02:00
NBA2K1
9b7fea1435 Implement Dropdown menu to video speed 2025-05-17 21:46:52 +02:00
NBA2K1
1e0951be42 Fix Slider assertion error when skipping past video duration
Prevent an AssertionError in the Slider widget when the skip duration
button causes the value to exceed the video's maximum duration.
Clamp the Slider's value to the range [0, max]
using `clamp(0.0, maxValue).toDouble()` to ensure it stays within bounds.

Exception example:
```
Exception has occurred.
_AssertionError ('package:flutter/src/material/slider.dart': Failed assertion: line 199 pos 10: 'value >= min && value <= max': Value 1410000.0 is not between minimum 0.0 and maximum 1409533.0)
```
2025-05-17 21:44:12 +02:00
NBA2K1
3bb8c1acdf Reduce Code duplication 2025-05-17 04:56:53 +02:00
Schnitzel5
e29470308c fixed repo check for deep links 2025-05-14 23:00:24 +02:00
Schnitzel5
49914c5a53 added JSON structure check for repos 2025-05-13 16:03:21 +02:00
Moustapha Kodjo Amadou
b57683f1a1 fix 2025-05-11 15:22:22 +01: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
d250c08424 refactor: update AndroidManifest and MainActivity for APK installation; remove flutter_app_installer dependency 2025-05-09 18:38:23 +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
Schnitzel5
3677938bf8 added support for epubs
embedded images not supported yet
2025-05-07 22:17:23 +02:00
Schnitzel5
d6d674c270 + 2025-05-05 20:12:58 +02:00
NBA2K1
152f2d5969 Fix incorrect expiresIn in Kitsu and AniList
- Resolved the same timestamp conversion issue that affected MyAnimeList.
- Previously, seconds-to-milliseconds conversion and `DateTime.now()` were applied twice — once on `login()` and once in `_getAccessToken()` — resulting in incorrect expiry dates (e.g., year 57349).
- Updated Kitsu’s URL from `.io` to `.app`.
2025-05-05 02:33:55 +02:00
Schnitzel5
821366cb06 added epubx dependency 2025-05-04 23:45:46 +02:00
NBA2K1
73e7ad05f9 Fix MyAnimeList expiresIn retrieval
Remove incorrect expiresIn calculation in `OAuth.fromJson`. The `login()`
function of the MyAnimeList class already sets expiresIn as an absolute timestamp in milliseconds.
Multiplying by 1000 and adding the current timestamp in fromJson caused
expiresIn to be inflated, making the expiration check in `_getAccessToken()`
always false, skipping token refresh and returning an invalid token.
2025-05-04 22:36:54 +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
NBA2K1
4010d019ae Idk why I had removed the requirement 2025-05-02 13:13:14 +02:00
NBA2K1
34206dbc42 storage_provider trim()
trim whitespace to prevent Exception
2025-05-02 13:02:50 +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
Enbiya Olgun
b6ff9fe141 Update custom_navigation_settings.dart
No need for SingleChildScrollView, because ReorderableListView already is scrollable
2025-04-28 21:03:41 +02:00
Enbiya Olgun
c799c3451c rearranged Code
- New SettingsSection class to remove code duplication

- Moved the big ListTile+Dialog blocks in their own private methods:
_buildLanguageTile(),
_buildFontTile(),
_buildRelativeTimestampTile(),
_buildDateFormatTile()
2025-04-28 21:02:06 +02:00
Enbiya Olgun
7690f2cae1 FollowSystemThemeButton rearrangement
Show the FollowSystemThemeButton always on first positon, whether ON or OFF.

Before, the FollowSystemThemeButton was on first position if it was ON and in second position if it was OFF (DarkModeButton took the first position)
2025-04-28 18:52:20 +02:00
Schnitzel5
77b912d40e added download all option 2025-04-28 15:03:45 +02:00
Enbiya Olgun
7ca8db5fc6 DRY the code in router.dart
remove code duplication by introducing a helper method _genericRoute().
2025-04-28 03:18:36 +02:00
NBA2K1
843ed46269 Update library_screen.dart 2025-04-27 06:33:35 +02:00
Enbiya Olgun
d64f332f77 Added comment 2025-04-27 03:18:40 +02:00
Enbiya Olgun
6b4a86d2b5 Better UX for mobile
Better text rendering of "ignore filters" checkbox on mobile.
Adds a line break to mobile devices, where horizontal space is limited.
2025-04-27 03:15:04 +02:00
Enbiya Olgun
2a59ae7b70 variable, method name change 2025-04-26 05:19:15 +02:00
Enbiya Olgun
71a6358452 Fix #349
Added a checkbox "ignoreFiltersOnSearch" to the library search, so when checked, the whole library will be searched, not just the filtered library (Downloaded, Unwatched/Unread, Started, Bookmarked)

+ added some comments
2025-04-26 05:03:06 +02:00
Enbiya Olgun
1f118184ba Update m_bridge.dart
Remove code duplication.
2025-04-25 21:32:48 +02:00
Enbiya Olgun
20bb3cc5ce Update m_bridge.dart
DRY
2025-04-25 04:29:05 +02:00
Enbiya Olgun
ca4cee5751 Update m_client.dart
- getCookiesPref() and deleteAllCookies():
Avoid repeated parsing of `Uri.parse(url).host` by creating a variable.

- httpClient():
cache RhttpCompatibleClients and add default IOClient fallback.

- shouldAttemptRetryOnResponse():
Added a delay to avoid busy looping.
2025-04-25 02:43:33 +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
Schnitzel5
0ad836994d bottoast 2025-04-22 22:30:11 +02:00
Enbiya Olgun
2446756552 moved super() call of initState to top of method 2025-04-22 04:57:52 +02:00
Enbiya Olgun
dabd0da206 App now adjusts theme without scheduler
Flutter already knows how to switch the theme automatically.
No need to listen to onPlatformBrightnessChanged.
This works on cold start.
Works when app is running and system theme changes.
And works when backup was done on different system theme and restore is being done on different system theme.
2025-04-22 04:55:46 +02:00
Enbiya Olgun
ffd776dbf1 tidy up main.dart and move theme handling to provider
removed code duplication
2025-04-22 03:53:28 +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
3e2d7ed5bd check if System theme has been changed
Why was this removed?
2025-04-22 01:17:17 +02:00
Enbiya Olgun
b5d65168fb Fix Exception
```
[ERROR:flutter/runtime/dart_vm_initializer.cc(40)] Unhandled Exception: Bad state: Cannot use "ref" after the widget was disposed.
#0      ConsumerStatefulElement._assertNotDisposed (package:flutter_riverpod/src/consumer.dart:550:7)
consumer.dart:550
#1      ConsumerStatefulElement.read (package:flutter_riverpod/src/consumer.dart:619:5)
consumer.dart:619
#2      _MainScreenState.initState.<anonymous closure>.<anonymous closure> (package:mangayomi/modules/main_view/main_screen.dart:70:13)
main_screen.dart:70
#3      _Timer._runTimers (dart:isolate-patch/timer_impl.dart:410:19)
timer_impl.dart:410
#4      _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:441:5)
timer_impl.dart:441
#5      _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:194:12)
isolate_patch.dart:194
```
2025-04-22 00:39:00 +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
d4e768f6f7 added progress for updating the library 2025-04-17 23:15:59 +02:00
Schnitzel5
58ec9895eb + 2025-04-15 00:18:23 +02:00
Schnitzel5
50fe6abfac updates screen search query 2025-04-14 00:00:41 +02:00
Schnitzel5
90dadbd2c6 fixed last updated 2025-04-10 16:03:08 +02:00
Enbiya Olgun
3fb6650f2e Extension Uninstall Message
Removed a space
2025-04-09 22:02:08 +02:00
Schnitzel5
454445ad25 fixed auto theme 2025-04-08 23:39:17 +02:00
Enbiya Olgun
cf8852fe50 Stays in the current category when updating
Fix #437
2025-04-08 00:36:33 +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
Enbiya Olgun
3d69caa392 Remove duplicate code
Why wasn't getMangaChapterDirectory simply using getMangaMainDirectory?
2025-04-07 19:14:43 +02:00
Enbiya Olgun
6afe7c97f7 What happened here?
fixSeparator? Just directly use join...
2025-04-07 04:04:05 +02:00
Enbiya Olgun
0188f99aad Added keyboard shortcut
Added the Enter-key as a shortcut to skip the Anime intro (defaultSkipIntroLength).
2025-04-06 23:18:47 +02:00
Moustapha Kodjo Amadou
bc2ec42d20 fix 2025-04-03 09:08:13 +01:00
NBA2K1
fcc6aa0f7f Localized messages are generated into source.
https://docs.flutter.dev/release/breaking-changes/flutter-generate-i10n-source
The flutter tool will no longer generate a synthetic package:flutter_gen or modify the package_config.json of the app.
Applications or tools that referenced package:flutter_gen should instead reference source files generated into the app's source directory directly.
2025-04-03 01:27:24 +02:00
NBA2K1
0d9ba09183 Apply Correct System Theme After Restart
App now looks if the system theme has been changed since last time the app was used and changes it accordingly.
2025-04-03 01:19:40 +02:00
Moustapha Kodjo Amadou
3f27122a15 feat: add new localization strings for multiple languages 2025-04-02 14:36:14 +01:00
Moustapha Kodjo Amadou
cd7d029a09 chore: update flutter_rust_bridge 2025-04-02 13:34:13 +01:00
Moustapha Kodjo Amadou
27154129d9 chore: update dependencies 2025-04-02 09:03:19 +01:00
Moustapha Kodjo Amadou
a0df094504 refactor: improve download button logic and clean up code 2025-04-01 17:15:54 +01:00
Schnitzel5
4791acc425 android users now can directly install new updates 2025-03-28 23:54:33 +01:00
Schnitzel5
175ea414b8 added android update 2025-03-28 16:00:29 +01:00
Schnitzel5
c45d8df099 test 2025-03-28 00:15:35 +01:00
Moustapha Kodjo Amadou
49bc8dd1a1 refactor 2025-03-27 16:03:11 +01:00
Moustapha Kodjo Amadou
5ef6963edc implement conditional display of DarkModeButton based on system theme preference 2025-03-27 15:54:19 +01:00
Moustapha Kodjo Amadou
451a07aef5 add statistics provider and redesign 2025-03-27 15:48:54 +01:00
Schnitzel5
3b2e6f9fcc fixed archive bug 2025-03-26 23:46:42 +01:00
Schnitzel5
95619437a1 added screenshot option to player view 2025-03-24 21:33:34 +01:00
Schnitzel5
17c18bd79a added follow system theme 2025-03-24 21:33:01 +01:00
Schnitzel5
fc8c00f24a + 2025-03-24 01:06:28 +01:00
Schnitzel5
4b2ee1f0e6 added option to load own subtitles 2025-03-22 22:10:02 +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
2bc96d46df some fixes 2025-03-14 22:42:57 +01:00
Schnitzel5
4e44208b65 added support for Neko backup 2025-03-14 16:01:15 +01:00
Schnitzel5
05a72d4971 added support for Aniyomi backup 2025-03-14 15:54:48 +01:00
Schnitzel5
5f33769bc1 added mihon backup support 2025-03-14 00:41:45 +01:00
Schnitzel5
cc80ee3608 track preferences not cleared unless the backup contains oauth tokens 2025-03-12 15:57:27 +01:00
Schnitzel5
2a08115067 added support for Kotatsu backups 2025-03-11 23:34:02 +01:00
Moustapha Kodjo Amadou
f443065113 + 2025-03-11 09:39:03 +01:00
Moustapha Kodjo Amadou
56f8b080cc fix 2025-03-10 16:17:05 +01:00
Moustapha Kodjo Amadou
fde0f3dd92 fix 2025-03-10 11:05:03 +01:00
Schnitzel5
301220a6a4 added default subtitle lang + statistics screen 2025-03-10 00:02:06 +01:00
Schnitzel5
f0aab34f0c fix category hide query 2025-03-09 22:07:26 +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
b581d9dc1c fix 2025-03-09 15:09:25 +01:00
Moustapha Kodjo Amadou
5905480392 improve category 2025-03-09 14:59:24 +01:00
Moustapha Kodjo Amadou
5329f37809 + 2025-03-09 12:26:36 +01:00
Moustapha Kodjo Amadou
80425a4cfe improve 2025-03-09 12:24:19 +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
dd27a6b3b3 - 2025-03-09 11:41:21 +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
Moustapha Kodjo Amadou
9e42c0ff31 fix 2025-03-09 10:59:52 +01:00
Moustapha Kodjo Amadou
2abe08cc71 fix OAuth expiration handling in MyAnimeList service 2025-03-07 15:32:32 +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
34c2ce3c37 refactor & fix lag when installing extension 2025-02-27 09:05:16 +01:00
Moustapha Kodjo Amadou
e0dd5edf19 add confirmation dialog for adding repositories 2025-02-23 16:13:10 +01:00
Moustapha Kodjo Amadou
3e401c8af2 dart format 2025-02-23 15:31:49 +01:00
Schnitzel5
3ecd3d0a14 added long press for 2x playback speed 2025-02-22 21:00:32 +01:00
yxxyun
721f0dbace
Merge branch 'main' into dev 2025-02-22 08:42:16 +08:00
Moustapha Kodjo Amadou
f841c1adde fix #388 2025-02-21 22:31:50 +01:00
yxxyun
9b45a028f5 fix 2025-02-21 17:00:57 +08:00
yxxyun
991d733e7c update quarkuc extractor 2025-02-21 16:57:16 +08:00
Schnitzel5
bd068641f1 added router fallback 2025-02-17 15:28:00 +01:00
Schnitzel5
972d3ca218 fixed other repos marked as obsolete when using multiple repos 2025-02-15 18:18:07 +01:00
Schnitzel5
dec2968921 optimized sync for library update 2025-02-15 17:30:38 +01:00
Schnitzel5
9b85654c17 fixed source repos not being restored properly 2025-02-14 22:52:34 +01:00
Schnitzel5
80bdfe7ee7 adjusted button positions 2025-02-14 21:52:34 +01:00
Schnitzel5
52eb0a903b sync bot toasts are more concise 2025-02-14 15:51:19 +01:00
Schnitzel5
7b00d0f7e4 finished snapshots and added auto sync 2025-02-13 23:41:26 +01:00
Schnitzel5
815ccbc19a + 2025-02-13 15:54:45 +01:00
Schnitzel5
00229ef5d0 enhanced sync feature 2025-02-12 23:59:39 +01:00
Schnitzel5
fc20f87870 Merge branch 'temp/sync' into feature/sync 2025-02-12 22:26:18 +01:00
Schnitzel5
aa946c9d51 enhanced sync feature 2025-02-12 19:13:16 +01:00
Schnitzel5
3f95c5b8d8 fallback message 2025-02-12 16:01:13 +01:00
Schnitzel5
f00b82ddb9 added deep links for repo urls 2025-02-12 15:48:36 +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
f125f442c7
Merge pull request #377 from Schnitzel5/remove-repo
Remove extension repo urls
2025-02-12 00:46:37 +01:00
Schnitzel5
be21df2354 - 2025-02-12 00:44:47 +01:00
Moustapha Kodjo Amadou
6e886a6276 refactor 2025-01-30 17:34:41 +01:00
Moustapha Kodjo Amadou
00b2e5fa31 improve custom navigation settings 2025-01-30 15:51:17 +01:00
Moustapha Kodjo Amadou
3eeb4777a6 feat: improve chapter download 2025-01-30 15:09:47 +01:00
Moustapha Kodjo Amadou
3353a85b0a
Merge pull request #375 from Schnitzel5/fix/restore-broken-categories
added conversion forManga to itemType when restoring
2025-01-29 19:44:17 +01:00
Schnitzel5
082fd455e3 added conversion forManga to itemType when restoring 2025-01-27 22:37:30 +01:00
Schnitzel5
83c5356359 fixed restore not refreshing navigation 2025-01-25 21:50:14 +01:00
Schnitzel5
cccf4b65cd reversed the switch to be more clear if the navigation is toggled 2025-01-25 21:32:18 +01:00
Schnitzel5
78adb3d65e removed some old strings 2025-01-25 21:19:42 +01:00
Schnitzel5
235db734d2 allow user to reorder and toggle each navigation item 2025-01-25 21:15:36 +01:00
Schnitzel5
7bc3061485 + 2025-01-24 00:25:11 +01:00
Moustapha Kodjo Amadou
d9e9e87926 fix #365 2025-01-22 18:25:28 +01:00
Moustapha Kodjo Amadou
c2942178d0 add additional localization strings 2025-01-22 12:03:45 +01:00
Moustapha Kodjo Amadou
116d9ac299 refactor: enhance label text style in navigation bar for better overflow handling 2025-01-22 10:59:24 +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
bc8e0cef47 fix #324 2025-01-22 10:24:18 +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
478c408db7 refactor: enhance query to exclude local archives in updates screen 2025-01-21 15:10:52 +01:00
Moustapha Kodjo Amadou
c4b153f60c refactor: replace Container with Badge for item count display and move hide items in appearance settings 2025-01-17 17:57:43 +01:00
Moustapha Kodjo Amadou
500713fc86 refactor 2025-01-17 11:41:00 +01:00
Moustapha Kodjo Amadou
0cc6194a5d + 2025-01-15 09:48:14 +01:00
Moustapha Kodjo Amadou
c906eec398 refactor 2025-01-15 09:31:45 +01:00
Moustapha Kodjo Amadou
8c841baaa3 fix 2025-01-11 06:45:34 +01:00
Moustapha Kodjo Amadou
778133ef89 fix migration error 2025-01-10 20:17:52 +01:00
kodjomoustapha
22cbf2dc44 fix Textfield not visible on mobile when typing 2025-01-09 17:16:00 +01:00
kodjomoustapha
fcb67ffd36 + 2025-01-09 15:24:55 +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
7e8b7430bf - 2025-01-07 14:00:26 +01:00
Moustapha Kodjo Amadou
9eb49c7af6
Merge pull request #351 from Schnitzel5/novel/font-size
added option to adjust reader font size
2025-01-07 13:25:06 +01:00
kodjomoustapha
3fdaf80b7c feat: enhance update total numbers filter options for updates and sources 2025-01-07 13:23:06 +01:00
kodjomoustapha
32b10b8a30 - 2025-01-07 12:46:09 +01:00
Schnitzel5
b4fa508ab8 hide novel reader settings for now 2025-01-06 18:49:16 +01:00
kodjomoustapha
61734faed5 fix 2025-01-06 17:39:21 +01:00
kodjomoustapha
13966fbf44 fix 2025-01-06 17:09:18 +01:00
Schnitzel5
29fd240b8f Merge branch 'main' into novel/font-size 2025-01-06 16:07:30 +01:00
kodjomoustapha
9083dd1af0 fix: update novel sources URL 2025-01-06 15:55:11 +01:00
kodjomoustapha
b4c09bbee0 feat: add evaluateJavascriptViaWebview 2025-01-06 13:04:04 +01:00
Schnitzel5
0d29f634eb added scrollbar 2025-01-04 00:04:08 +01:00
Schnitzel5
4778abef62 Merge branch 'main' into novel/font-size 2025-01-03 23:06:38 +01:00
kodjomoustapha
26550912a6 + 2025-01-03 11:24:18 +01:00
Schnitzel5
380bea2249 Merge branch 'main' into novel/font-size 2025-01-01 00:35:43 +01:00
kodjomoustapha
35c0502e87 refactor: remove default value for isManga 2024-12-31 11:13:42 +01:00
kodjomoustapha
7cf5614bb5 refactor: rename backup and restore to data and storage, update related imports and UI elements 2024-12-31 09:47:28 +01:00
Schnitzel5
7214689072 add bottom bar to adjust font size 2024-12-26 23:41:21 +01:00
kodjomoustapha
205806d3a3 fix 2024-12-25 15:57:06 +01:00
kodjomoustapha
a9e91a1237 fix 2024-12-25 15:12:08 +01:00
kodjomoustapha
2af2729559 fix 2024-12-24 15:40:49 +01:00
kodjomoustapha
4adfaa4170 fix 2024-12-24 13:04:35 +01:00
kodjomoustapha
36fd6d2709 fix getCachedImageFile 2024-12-24 12:46:12 +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
772b14d875 new backup version 2024-12-23 00:19:19 +01:00
Schnitzel5
80a8feee33 small fix 2024-12-22 20:47:11 +01:00
Schnitzel5
478c0ba45c option to hide certain UI elements + new backup version 2024-12-22 20:31:41 +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
Schnitzel5
c01aa6d023 changed to a different html widget 2024-12-21 00:21:03 +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
69c745238d avoid using the logger outside the code editor 2024-12-20 11:02:04 +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
Schnitzel5
a813758510 fixed build loop 2024-12-20 00:45:13 +01:00
Schnitzel5
a531e87bda formatted 2024-12-20 00:31:21 +01:00
Schnitzel5
50eff04fe6 added extension functions 2024-12-20 00:22:18 +01:00
kodjomoustapha
f99bc996b1 fix 2024-12-19 17:52:47 +01:00
NBA2K1
2c3bee5493
Merge branch 'kodjodevf:main' into main 2024-12-18 17:36:15 +01:00
NBA2K1
9fd57ab2a6 Revert "use_build_context_synchronously"
This reverts commit 1b16573b06.
2024-12-18 17:35:04 +01:00
NBA2K1
145af722e9 Revert "Improved performance of update in updates screen"
This reverts commit da3bcf1081.
2024-12-18 17:27:46 +01:00
kodjomoustapha
37d1dd9aa9 fix #319 2024-12-17 18:04:54 +01:00
NBA2K1
361ebcce4d Update backup_and_restore.dart
formatting
2024-12-16 22:07:19 +01:00
NBA2K1
15a0958f2b Update backup_and_restore.dart
Now only accepts .backup-files
2024-12-16 22:04:09 +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
NBA2K1
da3bcf1081 Improved performance of update in updates screen
Now in parallel instead of sequentially, 2x faster.
Benchmarked using stopwatch with 31 items in library:

Sequential:
1. 78771 ms
2. 74503 ms
3. 73165 ms

Parallel:
1. 36270 ms
2. 33703 ms
3. 33838 ms
2024-12-16 19:31:11 +01:00
NBA2K1
1b16573b06 use_build_context_synchronously
"message": "Don't use 'BuildContext's across async gaps.\nTry rewriting the code to not use the 'BuildContext', or guard the use with a 'mounted' check.",
2024-12-16 15:51:36 +01:00
Yegor Shovkun
73b144ed16 refactor: move try-catch 2024-12-14 14:01:42 +02:00
Yegor Shovkun
4e8a389de0 chore: codegen 2024-12-14 13:55:51 +02: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
ae1db05f04 - 2024-12-13 18:25:47 +01: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
Moustapha Kodjo Amadou
a15d989656
Merge pull request #332 from NBA2K1/main
File path fixes (Issue #331)
2024-12-11 09:04:00 +01:00
kodjomoustapha
b4cf59a275 fix #334 2024-12-10 14:34:01 +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
Schnitzel5
62f378f5ee added novel reader view 2024-12-10 00:01:54 +01:00
Schnitzel5
f054a1fd94 small fix 2024-12-08 22:55:14 +01:00
NBA2K1
86cb0737b0
Merge branch 'kodjodevf:main' into main 2024-12-08 21:53:40 +01:00
kodjomoustapha
2d7991d1cb fix remains in full screen when opening a new episode 2024-12-08 19:35:13 +01:00
NBA2K1
6f5ca4f99e Update app_de.arb
typo
2024-12-08 19:31:15 +01:00
NBA2K1
d03b70e0f9 Translations + visual optimization
- added missing translations to German localization file
- Made some translations more natural

- "Updates" button on main screen now has proper hyphenation for too long words to fit in one line (German, Spanish, Italian, Turkish)
2024-12-08 19:25:33 +01:00
NBA2K1
cf0cd5a19e Issue #307 fix
Found it [here](https://github.com/akvelon/flutter-code-editor/issues/270#issuecomment-2097035050)
2024-12-07 16:28:37 +01:00
NBA2K1
818857261d Windows PathNotFoundException fix
- Fixed the PathNotFoundException for Windows, which doesn't use "/" in directories, but "\".
(flutter: PathNotFoundException: Creation failed, path = 'C:\Users\User\AppData\Local\Temp\Mangayomi/cacheimagecover' (OS Error: Das System kann den angegebenen Pfad nicht finden.)
Instead of manually concatenating paths using string interpolation, it now uses the join function properly.
- Also fixed that the App was not able to create the directories by including recursive: true in the else statement.
2024-12-07 03:54:23 +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
kodjomoustapha
49ac4c306d + 2024-12-06 11:00:07 +01:00
Schnitzel5
d46d30a30b add novel support 2024-12-02 23:04:52 +01:00
kodjomoustapha
46d4aefc2f feat: add supportsLatest getter for JS 2024-12-02 17:14:01 +01:00
kodjomoustapha
11dea6dfaf fix get torrent video list 2024-12-02 17:01:10 +01:00
Schnitzel5
161750f5dc add novel support 2024-11-27 23:51:54 +01:00
Schnitzel5
58225ea21d Merge branch 'feature/light-novel' 2024-11-27 22:40:18 +01:00
kodjomoustapha
727dad4a8c delete the BT cahe directory on each first launch 2024-11-27 15:32:10 +01:00
kodjomoustapha
65414a98ca fix #309 2024-11-27 15:15:16 +01:00
Schnitzel5
cae5f92140 moved key I to L for 10s skip and arrow keys are 5s now 2024-11-26 17:44:41 +01:00
kodjomoustapha
e3c8dc9896 + 2024-11-25 10:49:36 +01:00
Moustapha Kodjo Amadou
c3ae44ff2e
Merge pull request #311 from Schnitzel5/adjust/player-fullscreen
add auto fullscreen option to anime player
2024-11-25 10:48:34 +01:00
Schnitzel5
72a324ea7f add auto fullscreen option to anime player 2024-11-24 23:59:53 +01:00
Schnitzel5
0546a2a1ea stays fullscreen unless quitting the player 2024-11-24 23:21:35 +01:00
Schnitzel5
fb127f56b5 add novel support 2024-11-24 19:49:57 +01:00
Schnitzel5
b2e25d26de Merge branch 'feature/novel' into feature/light-novel 2024-11-24 17:57:31 +01:00
NBA2K1
7e68bb14d4 issue #304 fix
cursor will be unvisible like the video controls after some time (3s)
2024-11-24 15:40:30 +01:00
kodjomoustapha
a7a5aa2690 fix 2024-11-23 16:31:18 +01:00
Schnitzel5
ca16d34332 Merge branch 'feature/light-novel' into feature/novel 2024-11-22 00:28:24 +01:00
kodjomoustapha
4b21eea285 fix 2024-11-21 10:45:18 +01:00
kodjomoustapha
ee1529be24 update 2024-11-20 17:59:12 +01:00
Philip Duong
64e04b673b added password requirement 2024-11-19 22:33:03 +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
kodjomoustapha
7c2161a664 auto resolve cloudflare challenge 2024-11-12 10:50:26 +01:00
kodjomoustapha
f3597d7023 fix 2024-11-12 09:15:11 +01:00
kodjomoustapha
af6c409e26 #294 2024-11-11 17:32:50 +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
playerterra1
752387ccde changes for novel support 2024-11-05 14:55:54 +00:00
kodjomoustapha
a96ff64320 + 2024-11-01 16:36:15 +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
kodjomoustapha
396bc57920 Upgrade frb 2024-10-16 10:53:07 +01:00