Brings ~55 mod-exclusive files to the upstream-based mod/master-resync branch: Activities (migrated to new ActivityManager pattern): - Clock/Time: SetTimeActivity, SetTimezoneOffsetActivity, NtpSyncActivity - Dictionary: DictionaryDefinitionActivity, DictionarySuggestionsActivity, DictionaryWordSelectActivity, LookedUpWordsActivity - Bookmark: EpubReaderBookmarkSelectionActivity - Book management: BookManageMenuActivity, EndOfBookMenuActivity - OPDS: OpdsServerListActivity, OpdsSettingsActivity - Utility: DirectoryPickerActivity, NumericStepperActivity Utilities (unchanged): - BookManager, BookSettings, BookmarkStore, BootNtpSync - Dictionary, LookupHistory, TimeSync, OpdsServerStore Libraries: PlaceholderCover, TableData, ChapterXPathIndexer Scripts: inject_mod_version, generate_book_icon, preview_placeholder_cover Docs: KOReader sync XPath mapping Migration changes: - ActivityWithSubactivity -> Activity base class - Callback constructors -> finish()/setResult() pattern - enterNewActivity() -> startActivityForResult() - Activity::RenderLock&& -> RenderLock&& These files won't compile yet - they reference mod settings and I18n strings that will be added in subsequent phases. Made-with: Cursor
1.4 KiB
1.4 KiB
OPDS Per-Server Default Save Directory
Task
Add a configurable default download path per OPDS server. The directory picker now starts at the server's saved path instead of always at root. New servers default to "/".
Changes Made
Modified files
src/OpdsServerStore.h-- AddeddownloadPathfield (default"/") toOpdsServerstruct.src/OpdsServerStore.cpp-- Serialize/deserializedownload_pathin JSON. Existing servers without the field default to"/".src/activities/settings/OpdsSettingsActivity.cpp-- Added "Download Path" as field index 4 (shifted Delete to 5). UsesDirectoryPickerActivityas subactivity for folder selection. Displays current path in row value.src/activities/util/DirectoryPickerActivity.h/.cpp-- AddedinitialPathconstructor parameter (default"/").onEnter()validates the path exists on disk and falls back to"/"if not.src/activities/browser/OpdsBookBrowserActivity.cpp-- Passesserver.downloadPathasinitialPathwhen launching the directory picker.lib/I18n/translations/*.yaml(all 9 languages) -- AddedSTR_DOWNLOAD_PATHwith translations.lib/I18n/I18nKeys.h,I18nStrings.h,I18nStrings.cpp-- Regenerated.
Follow-up Items
- Test on device: verify settings UI shows/saves path, picker opens at saved path, fallback works when directory is removed