Commit graph

180 commits

Author SHA1 Message Date
Moustapha Kodjo Amadou
1256e608c7 Refactor 2026-03-02 11:49:19 +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
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
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
Moustapha Kodjo Amadou
74b194602c update dependencies & update riverpod provider declarations 2026-01-08 14:27: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
Moustapha Kodjo Amadou
344533aeb1 fix: show chanded source preference for mihon source 2025-12-23 19:18:18 +01:00
Moustapha Kodjo Amadou
afc4c620f8 fix: prevent error when scrolling without clients 2025-11-12 17:04:38 +01:00
Moustapha Kodjo Amadou
29fe96151d fix: enable logger usage in isolate service 2025-11-12 17:02:06 +01:00
Moustapha Kodjo Amadou
0903b9d7e3 refactor: improve code structure and enhance UI elements in the code editor and manga detail view 2025-11-11 10:38:27 +01:00
Moustapha Kodjo Amadou
430e81e021 Refactor and update dependencies for Isar and Riverpod 2025-10-29 13:08:42 +01:00
Schnitzel5
5ef46ec13d adding support for LNReader plugins 2025-10-10 15:49:33 +02:00
Schnitzel5
2955dd0bd1 + 2025-09-07 22:28:20 +02:00
Schnitzel5
05d0ddf0d6 reworked local source
- allow multiple local folders
- added support for scanning .epub novels
- added metadata,json support
- scanned entries now appear in browse screen instead of the default library category (can be added to library)
2025-09-04 23:02:27 +02:00
Schnitzel5
60928374a3 + 2025-09-03 23:44:06 +02:00
Schnitzel5
78f8dd372f fixed local sources not showing in the extensions screen 2025-08-28 20:19:27 +02:00
Moustapha Kodjo Amadou
600a699708 feat: Add use sourceId property if not null to get source model 2025-08-28 12:12:23 +01:00
Schnitzel5
a572f7ddaf changed from labels to icons 2025-08-26 15:21:59 +02:00
Moustapha Kodjo Amadou
3a577a4c9e Add fixed versions packages of isar_generator and hive_generator to avoid the Analyzer plugin error 2025-08-25 13:21:37 +01:00
Moustapha Kodjo Amadou
b11ae203ea Refactor RadioListTile usage to RadioGroup in multiple screens 2025-08-24 11:33:11 +01:00
Schnitzel5
74c5eab379 enhanced repo manager
- added custom DNS setting
2025-08-23 03:33:48 +02:00
Schnitzel5
7eba7bdcf2 added filters
- fixed torrents not playing
2025-08-22 17:13:28 +02:00
Schnitzel5
03108ae701 added preferences 2025-08-22 00:13:24 +02:00
Schnitzel5
9395888c6a added support for Mihon extensions via ApkBridge 2025-08-20 21:06:26 +02:00
Schnitzel5
c7d1d75045 added Anibrain recommendations 2025-08-15 21:42:47 +02:00
NBA2K1
d221e5fab0 dispose 2025-07-13 01:42:35 +02:00
NBA2K1
00462f3066 dispose! 2025-07-13 01:24:14 +02:00
NBA2K1
7a5c25b94f dispose 2025-07-12 20:10:04 +02:00
Schnitzel5
bd17e1e9eb adjusted sync features 2025-07-04 02:24:01 +02:00
Schnitzel5
b2d29e32d6 added repo name to extension list 2025-06-29 00:24:06 +02: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
Moustapha Kodjo Amadou
4d27a2c0e3 fix #468 2025-06-02 11:41:12 +01: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
80efee40d1 dart format 2025-05-30 17:43:42 +01:00
Schnitzel5
3677938bf8 added support for epubs
embedded images not supported yet
2025-05-07 22:17:23 +02:00
Schnitzel5
7e9202ceeb added extension notes/hints 2025-04-23 23:33:18 +02:00
Enbiya Olgun
2446756552 moved super() call of initState to top of method 2025-04-22 04:57:52 +02: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
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
3e401c8af2 dart format 2025-02-23 15:31:49 +01:00
Schnitzel5
00229ef5d0 enhanced sync feature 2025-02-12 23:59:39 +01:00