Commit graph

833 commits

Author SHA1 Message Date
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