Commit graph

773 commits

Author SHA1 Message Date
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
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
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
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
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
Enbiya Olgun
3fb6650f2e Extension Uninstall Message
Removed a space
2025-04-09 22:02:08 +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