Repository navigation
Conversation
|
Thanks for working on this. This is a useful feature, but automatic downloads and cleanup could have a significant impact on storage, bandwidth, battery, and the user’s existing local files. We should be careful not to assume that every user enabling the toggle understands all of those consequences. Before merging, I’d like us to test the edge cases and consider stronger user-facing safeguards, such as a clear explanation of what enabling the option will do, a summary of the expected storage impact, explicit network and charging requirements, conservative defaults, sensible storage caps, and confirmation before enabling potentially expensive behavior. It should also be clear that disabling the option does not delete existing files, and any cleanup behavior should be clearly explained before the user opts in. I’m going to review the edge cases and identify what additional protection is needed for users who may enable the toggle without fully understanding its effects. |
Closes #275.
This adds per-library automatic downloads for BookOrbit and Komga. It is off until the user enables it for a library. Charging-only is on by default, and there is an off-by-default option to download every alternate copy instead of only the preferred one.
Storage controls include a maximum local library size, a reserved minimum free-space value, and optional cleanup when either limit is exceeded. Zero disables either numeric limit. Cleanup starts with completed books and then uses least-recently-read order. It does not touch active or in-progress files, turning sync off does not remove existing downloads, and there is a separate clear-local-copies action.
Manual downloads remain available when automatic limits are reached. If one takes storage above a configured limit, cleanup can bring it back under the user's chosen cap.
Download records, queues, and active-reader protection are scoped to the current server and account. Logging out or changing profiles pauses the work without resetting the user's settings.
Tested against current main with 947 passing JVM tests, Android-test compilation, lint, and a debug APK.