Commit graph

1156 commits

Author SHA1 Message Date
Moustapha Kodjo Amadou
28fdbeb09b v0.6.2 2025-06-02 12:45:10 +01: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
Moustapha Kodjo Amadou
9dedc2d8a9
Merge pull request #471 from NBA2K1/main
Apply System Theme After Backup Restore
2025-06-02 09:18:20 +01:00
NBA2K1
b3ffc3ea67 Apply System Theme After Backup Restore 2025-06-02 00:08:41 +02:00
Moustapha Kodjo Amadou
714ee50b1c
Merge pull request #469 from NBA2K1/main
Fix inspector/crash issues & improve UX in extension, player, and UI
2025-06-01 20:25:50 +01: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
GitHub Action
93f25eaccb source update: v0.6.1 2025-05-30 16:52:43 +00:00
Moustapha Kodjo Amadou
ab95a3e5a0 v0.6.1 2025-05-30 17:43:54 +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
Moustapha Kodjo Amadou
90d536a777
Merge pull request #463 from NBA2K1/main
Fix Kitsu
2025-05-29 17:11:40 +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
Moustapha Kodjo Amadou
40a1697e86
Merge pull request #462 from NBA2K1/main
Update storage_provider.dart
2025-05-27 15:07:19 +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
0f333848cd add Entitlements for File Access (read-only) 2025-05-20 17:45:09 +01:00
Moustapha Kodjo Amadou
45715cf488 fix 2025-05-20 15:26:46 +01:00
Moustapha Kodjo Amadou
fc5776ab60
Merge pull request #457 from NBA2K1/main
Improve Video Playback UI & Maintainability
2025-05-19 15:29:36 +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
Moustapha Kodjo Amadou
e5a880d188
Merge pull request #455 from Schnitzel5/enhance/repo-check
added JSON structure check for repos
2025-05-18 00:23:56 +01: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
NBA2K1
b2695aae49 Get latest appimagetool 2025-05-17 04:56:35 +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