Commit graph

1272 commits

Author SHA1 Message Date
NBA2K1
7bc3338c2a Make login dialog code simpler
- Remove unnecessary email and password state variables
- Rely on TextEditingController values instead of onChanged
- Reset error state on submit
- Dispose controllers after dialog closes
2026-02-27 14:12:18 +01:00
NBA2K1
f85e661c8e Add autofill to kitsu login dialog
- Wrap login fields in AutofillGroup and add proper autofillHints for email, username, and password
- Add keyboard types, textInputAction, and onFieldSubmitted to improve form navigation
- Disable suggestions/autocorrect for password field
- Add TextInput.finishAutofillContext() on successful login
- Improve focus handling and overall form behavior
- Minor UI/structure adjustments for clarity and consistency
2026-02-27 12:18:25 +01:00
Moustapha Kodjo Amadou
df99d72022 Merge branch 'main' of https://github.com/kodjodevf/mangayomi 2026-02-27 11:00:07 +01:00
userkilled
707694f6c7
Change 'Игрок' to 'Плеер' in Russian localization 2026-02-26 03:31:38 +03:00
userkilled
4ac463d0dc
Change 'Игрок' to 'Плеер' in Russian localization 2026-02-26 03:20:18 +03:00
Moustapha Kodjo Amadou
099180bc34 feat: enhance RhttpCompatibleClient with cancel token support and improve error handling; add new target for Windows ARM64 2026-02-25 12:56:16 +01:00
Moustapha Kodjo Amadou
9d829a16e7 refactor: update DoH resolution method to use hostname first; improve circuit breaker logic 2026-02-25 11:52:18 +01:00
Moustapha Kodjo Amadou
cc69c9f275 + 2026-02-23 15:29:44 +01:00
Moustapha Kodjo Amadou
7fe77dafde fix: ensure state is updated only when mounted; increase timer duration to 40 seconds 2026-02-23 15:25:54 +01:00
NBA2K1
e1fa1f75bc Improve failure message by using itemType.name
- Replace raw itemType (e.g. "ItemType.manga") with itemType.name (e.g. "manga") for better legibility.
2026-02-22 14:45:01 +01:00
Moustapha Kodjo Amadou
eec96c6258
Merge pull request #644 from NBA2K1/main
Improve extension service lifecycle, isolate robustness, dedupe lists, and UI/lifecycle cleanups
2026-02-13 10:50:32 +01:00
NBA2K1
e5252183aa Revert "+"
This reverts commit 3c2bc096a9.
2026-02-04 20:04:42 +01:00
Moustapha Kodjo Amadou
7a47d5340c - 2026-02-02 12:34:52 +01:00
Moustapha Kodjo Amadou
5727ab497c
Merge pull request #655 from Schnitzel5/feature/update-category-filter
added option to exclude categories from mass update
2026-01-31 14:55:19 +01:00
Schnitzel5
3c2bc096a9 + 2026-01-31 00:16:48 +01:00
Schnitzel5
7c4ad924b1 added option to exclude categories from mass update 2026-01-31 00:14:39 +01:00
Schnitzel5
ac21eae8d4 small adjustments for a better reading experience of many single pages in a row
- to prevent old entries (before sourceId was introduced) from accidentally using conflicting sources with the same name even if they are not installed
2026-01-30 23:15:26 +01:00
Moustapha Kodjo Amadou
ee41024a4f rename 2026-01-26 17:30:07 +01:00
Moustapha Kodjo Amadou
d5aecf66dc Fix #643 2026-01-26 17:28:25 +01:00
Moustapha Kodjo Amadou
bf6949a834 feat: refactor backup function to improve error handling and notification display 2026-01-23 14:44:17 +01:00
Moustapha Kodjo Amadou
b53e869258 feat: add DNS-over-HTTPS (DoH) support (experimental) 2026-01-20 14:38:46 +01:00
NBA2K1
8b1f7fc581 Add service disposal and lifecycle cleanup
This commit improves memory management, reduces redundant interpreter
instantiation, and standardizes service usage patterns.

- Add `dispose()` to `ExtensionService` interface and implement it across
  Dart, JS, LNReader, and Mihon services.
- Replace repeated interpreter creation in `DartExtensionService` with a
  persistent `_interpreter` instance initialized once in the constructor.
- Add disposal logic for JS DOM selector and Cheerio instances to prevent
  memory leaks.
- Introduce `withExtensionService()` helper to ensure services are always
  disposed after use.
- Update call sites across the codebase to use `withExtensionService()`
  or manual try/finally disposal.
- Improve isolate service message handling by extracting `responsePort`
  earlier.
- Ensure safer defaults (e.g., returning empty lists, const lists) when
  service calls fail.
2026-01-13 01:11:19 +01:00
Moustapha Kodjo Amadou
83b7d31e0a Increase isolate pool size to enhance concurrent download capabilities 2026-01-09 11:48:23 +01:00
NBA2K1
267f2d12df dedupe page and video lists using LinkedHashSet
- Replace list→set→list conversions with LinkedHashSet for stable ordering
- Ensure PageUrl uniqueness based on URL
- Ensure Video uniqueness based on url + originalUrl
- Add null‑safety checks when building PageUrl and Video objects
- Improve readability and reduce unnecessary allocations
2026-01-08 23:52:31 +01:00
NBA2K1
ffda1ce1dc add locale caching, and improve WebView cleanup
- Added _initializedLocales to prevent repeated locale initialization
- Improved evaluateJavascriptViaWebview with safer lifecycle handling (try/finally + null checks)
- Minor cleanup and consistency improvements across MBridge utilities
2026-01-08 23:43:40 +01:00
NBA2K1
f4f344ce29 add log buffer and replace direct list mutation
- Introduce _addLog() helper to manage log insertion
- Enforce a maximum log history of 200 entries to prevent unbounded memory growth
- Replace direct _logsNotifier.value.add(event) with safe, immutable-style list update
- Improve log handling consistency and avoid mutating notifier state in place
2026-01-08 22:48:34 +01:00
NBA2K1
09684a2641 improve isolate lifecycle and add timeouts
- Add StreamSubscription to manage ReceivePort listener lifecycle
- Introduce handshake timeout when waiting for isolate SendPort to prevent hangs
- Add response timeout in get<T>() to avoid indefinitely waiting for isolate replies
- Replace direct ReceivePort.listen with tracked subscription for safer cleanup
- Improve error handling for invalid or missing isolate responses
- Strengthen isolate startup reliability and shutdown consistency
2026-01-08 22:41:14 +01:00
NBA2K1
8444e308ad Fix Riverpod lifecycle error
By moving provider-dependent init to didChangeDependencies. (dependOnInheritedWidget)
2026-01-08 21:47:51 +01:00
NBA2K1
ee2d42fa4b categories screen clean up 2026-01-08 18:56:23 +01:00
Moustapha Kodjo Amadou
74b194602c update dependencies & update riverpod provider declarations 2026-01-08 14:27:08 +01:00
Moustapha Kodjo Amadou
b9f9a8398f Refactor download management with shared isolate pool and optimize concurrent downloads 2026-01-08 13:01:15 +01:00
Moustapha Kodjo Amadou
9458ae120b fix #637 2026-01-07 13:07:55 +01:00
Moustapha Kodjo Amadou
701a696820 Enhance category management with animation 2026-01-05 12:38:30 +01:00
Moustapha Kodjo Amadou
db24951673 Add localization 2026-01-05 12:15:14 +01:00
Moustapha Kodjo Amadou
7c4c8d8a20 + 2026-01-05 12:12:56 +01:00
Moustapha Kodjo Amadou
6b70fff6cc
Merge pull request #638 from 686udjie/main
add a force landscapre mode on mobile
2026-01-05 12:11:33 +01:00
NBA2K1
922582b270 Fix share params to avoid Text file
- avoids extra text file
- simplify RenderBox lookup
2026-01-04 20:25:13 +01:00
686udjie
79ee4b4fc8 add a force landscapre mode on mobile 2026-01-01 19:48:57 +02:00
NBA2K1
c8328fa347 improve performance of helper method
- compare integers instead of Strings
- cache results per day
2025-12-30 02:44:45 +01:00
NBA2K1
a63f0d67bd Extract helper methods
for better readability
2025-12-30 02:41:47 +01:00
NBA2K1
2c92d74a03 Fix invalid selection
Don't show manga calendar if manga is hidden.
2025-12-30 02:04:06 +01:00
NBA2K1
a2a10a799d Hide items in Calendar
When the user has hidden Manga or Anime or Novel, hide the buttons in the calendar.
2025-12-30 01:37:30 +01:00
NBA2K1
ba77c5baea Reduce Code Duplication
And add comments
2025-12-30 01:15:36 +01:00
NBA2K1
4e2d8b0038 Fix category rearrange bug
When rearranging categories in the Manga library, all categories in Anime and Novel were being deleted.
2025-12-30 00:27:49 +01:00
NBA2K1
821cbfa0dd Make function async
_updateCategoriesOrder() is now async
2025-12-29 23:38:17 +01:00
NBA2K1
4fb9f0a9df remove redundant things 2025-12-29 23:20:08 +01:00
NBA2K1
1ac605e30a Use the localized extension 2025-12-29 23:20:08 +01:00
NBA2K1
9efd76581f Group related functions using an extension
- new file item_type_filters.dart for the hiddenItemTypes function.
- reduces code duplication in statistics_screen, categories_screen and base_library_tab_screen
2025-12-29 23:19:31 +01:00
NBA2K1
7664e38cfd Fix "Show extensions" Button
The "Show extensions" Button was not working properly when categories were hidden.
An Exception would throw:
```
_AssertionError ('package:flutter/src/material/tab_controller.dart': Failed assertion: line 202 pos 12: 'value >= 0 && (value < length || length == 0)': is not true.)
```
And jump to the end of the tab list regardless of where you clicked the button.
2025-12-29 05:02:43 +01:00
NBA2K1
42f1dcff92 Reduce Code Duplication
- Extract localizedItemType() from `base_library_tab_screen.dart`
- Add localizedSources() and localizedExtensions() for browse_screen.dart
- Reduce if-statements in statistics_screen.dart
- Reduce if-statements in categories_screen.dart
- Reduce if-statements in browse_screen.dart
2025-12-29 04:59:06 +01:00