Adds a flexible smart organizer to Favorites - #92
Conversation
- add rule-based smart folders and lifecycle stages - unify reading progress and completion handling - add organizer refresh and per-scope stage counts - persist and back up smart folders - add Room migration, tests, and OpenSpec documentation - improve native library compatibility and image request cleanup
- preserve All favorites independently of editable categories - restore folder tabs and scope-aware filters - bind container controls only to the active page lifecycle - add database migrations and regression coverage - clean up source views and update AndroidX Hilt compiler
|
Not expect it woulbe so large |
|
SKILL.md 😭 |
mb cleaning it up |
dragonx943
left a comment
There was a problem hiding this comment.
Thanks for your contributions, here are some of my comments on this PR. Hopefully, it will be improved to make it more accessible to users.
In addition to the above comments, I hope that the code changes in this PR have been refactored, ensuring they are minimal to avoid redundancy of any unused resources / variables / methods. Furthermore, please ensure the execution flow is truly optimized for Android devices (especially low-spec devices running on Android 5.0, SDK 21), and that memory leaks are avoided.
Besides the code changes, I'd like you to improve the interface: Instead of placing them directly on the filter chips, you could simplify unnecessary parts like "refresh" and "create", and put their filters into the general Favorites filter table (as shown in the image). Regarding adding them, since you already have "Smart folders," the "+" isn't really necessary at this point.
Interface is still bottleneck for me, it mostly like draft rn, need to think how to do it good |
|
and need to test more for eansure leak sceanrio is not appear |
|
But I kind busy rn, will do it slow within a week |
- move Favorites filters, sorting, refresh, and folder management into the list options sheet - redesign smart folder creation with grouped rule and display sections - add searchable selections and allow smart folders without explicit rules - add direct folder creation and improve component spacing - align AndroidX Hilt dependencies for API 21 compatibility - add regression coverage for filters, rules, and widget padding
filters can be activated via filter chips and if users wants to add a folder, they can do so through the "Favorite Categories" interface improving this could allow for clearer differentiation of functions instead of trying to cram them onto one screen, which is quite difficult to see |
- remove permanent create and filter buttons from Favorites - give folder tabs and lifecycle chips the full available width - add Pixel instrumentation coverage for header navigation sizing
|
This PR is ready for the testing phase; the results will be reported in a few days. If there are no issues / problems, it will be automatically approved. |
|
@biglag After a short testing period, I found a few issues that need to be addressed before merging / approving this PR, please take a look about them:
...to filter chips, that current interface for them is a bit poor (in my personal experience). And some glitched dialogs / boxes, not optimized for displaying:
I didn't test your feature on Android 5 / 6 devices, since I have no time to do that. I will try it soon, after your fixes / patches. |
I'll test it on Android 5 / 6 devices dw |
- move binary filters to chips and support standalone list options - automate terminal-stage refresh and hide empty rule summaries - polish smart-folder selectors, transitions, and dialog sizing - add regression coverage for organizer and selection UI
|
Tested on android 5/6, didn't see any unstable things, seems like all normal, but I was tested only the new logic with folder, not the whole app |
|
Any update? |
Work has taken up all my free time. I'll update soon |
- use borderless icon chips in the list options filter section - unify source and genre selectors with other filter chips - align section headings and spacing - remove lifecycle counts and duplicate smart-folder menu entry - remove UI tests from version control while retaining them locally
…e/smart-favorites-organizer
|
Lmk if need another tests cleanup |









































Summary
Adds a flexible smart organizer to Favorites while preserving the familiar folder-based navigation.
Users can organize large libraries using manual categories, rule-based smart folders, and automatic lifecycle stages such as Not started, Reading, Waiting, Completed, and Needs review.
What changed
Favorites organization
All favoritesas a permanent system folder.Smart folders
Global favorite membership
All favoriteswithout belonging to a manual folder.All favoritesdirectly selectable from manga details.All favoritesremoves all active memberships for the title.Persistence and backup
Reading lifecycle
Runtime quality
Database migration
The database schema advances through:
28 → 29: smart-folder storage;29 → 30: reserved global favorite membership and initial backfill;30 → 31: repair missing or inactive global memberships;31 → 32: remove manual-removal coupling.Existing favorite, category, and manga data is preserved during forward migration. Downgrading to an earlier schema is not supported by Room.
Verification
FavouritesOrganizerDaoTest: 10/10 tests passed on Pixel 10.31 → 32: 1/1 test passed on Pixel 10.FavoriteSelectionStateTestpassed in a fresh Gradle run.assembleDebugcompleted successfully with--rerun-tasks.openspec validate smart-favorites-organizer --strictpassed.adb install -r, preserving the existing database.Pixel smoke coverage included:
All favorites;All favorites;Remote cover requests still produced unrelated HTTP 404 and timeout messages. Close #82