Commit Graph
155 Commits
Author SHA1 Message Date
jpirnay edf7ce1ae2 Review comments 2026-04-26 17:57:26 +02:00
jpirnay 812269057d X3 fixes 2026-04-26 17:20:16 +02:00
jpirnayandCopilot 3046a1a94a More cleaningup
Co-authored-by: Copilot <copilot@github.com>
2026-04-26 17:12:52 +02:00
jpirnay 9a72409826 Fixing submenus 2026-04-24 14:17:50 +02:00
jpirnay 0c080f5600 Refactor submenu creation logic 2026-04-24 12:44:08 +02:00
jpirnay 6053ef4756 Review comments 2026-04-23 17:08:08 +02:00
jpirnay 42fa3a4ac8 clang 2026-04-23 12:19:55 +02:00
Arthur TazhitdinovandCopilot c867669560 feat: Support for multiple OPDS servers (#1209)
* Add support for configuring and using multiple OPDS servers, replacing
the previous single-server limitation. Closes
https://github.com/crosspoint-reader/crosspoint-reader/issues/1178
* New OpdsServerStore singleton (modeled after WifiCredentialStore) that
persists up to 8 OPDS servers to /.crosspoint/opds.json with MAC-based
password obfuscation.
* One-time migration from legacy single-server fields in
CrossPointSettings to the new store on first boot.
* New OpdsServerListActivity for the device UI — works in two modes: a
settings list (add/edit/delete servers) and a picker (select which
server to browse). When only one server is configured, the picker is
skipped automatically.
* Renamed CalibreSettingsActivity → OpdsSettingsActivity for clarity. It
now edits individual OpdsServer entries (name, URL, username, password,
delete).
* OpdsBookBrowserActivity now receives an OpdsServer at construction and
uses its credentials for all fetches/downloads, and shows the server
name in the header.
* HttpDownloader::fetchUrl and downloadToFile accept optional per-call
username/password parameters instead of reading from global settings.
* REST API endpoints on CrossPointWebServer: GET /api/opds, POST
/api/opds, POST /api/opds/delete — passwords are never exposed over the
API (only a hasPassword flag), and omitting the password field on update
preserves the existing one.
* Web UI (SettingsPage.html) with dynamic OPDS server management cards —
add, edit, save, and delete servers from the browser.
<img width="932" height="906" alt="SCR-20260416-stvu"
src="https://github.com/user-attachments/assets/a8f18d84-4204-46a0-bb31-b73d24b3255f"
/>

* The OpdsServerStore JSON format and obfuscation scheme are identical
to WifiCredentialStore, so the same JsonSettingsIO infrastructure
handles both.
* The web API uses POST /api/opds/delete instead of DELETE /api/opds
because the ESP32 WebServer doesn't support the DELETE method with a
request body.
* Existing single-server configurations are migrated automatically — no
user action required. After migration the legacy CrossPointSettings
fields are cleared so it only runs once.
* The HttpDownloader changes are backward-compatible: the credential
parameters default to empty strings, so existing callers are unaffected.

---

While CrossPoint doesn't have restrictions on AI tools in contributing,
please be transparent about their usage as it
helps set the right context for reviewers.

Did you use AI tools to help write this code? _**< YES >**_

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-23 11:14:50 +02:00
jpirnay f6f18dcf15 Write directly 2026-04-21 18:27:59 +02:00
jpirnay df171560db Fix firmware download 2026-04-21 17:16:19 +02:00
jpirnay d4c475470b Allow cancellation of download, dont block the device 2026-04-21 14:26:21 +02:00
jpirnay 425c1db132 Review comments 2026-04-20 21:16:31 +02:00
jpirnay 3a4923c8d5 yaclf 2026-04-20 21:00:20 +02:00
jpirnay a00712a085 Adjust warnings for x3 2026-04-20 20:50:33 +02:00
jpirnay a6aed8d30e Add additional timezones 2026-04-20 20:40:38 +02:00
jpirnay bbafd4ce62 Display error reason on ntp time sync fail 2026-04-20 10:32:52 +02:00
jpirnay d39246ee70 yaclf 2026-04-17 20:54:49 +02:00
jpirnay fbde017d88 Fix usage 2026-04-17 18:00:30 +02:00
jpirnay de314182f7 mitigating fragmented heap 2026-04-17 17:02:50 +02:00
jpirnay 87b9d333f7 Review changes 2026-04-17 15:54:08 +02:00
jpirnay 3b8b389408 Refactor Settings usage 2026-04-17 15:38:37 +02:00
jpirnay 47b46a24b9 Use common activity pattern 2026-04-16 14:20:35 +02:00
jpirnay f999a4c6b5 Merge branch 'master' of https://github.com/jpirnay/crosspoint-reader 2026-04-16 13:30:20 +02:00
jpirnay 4d28b3adad Use getContentRect for consistency 2026-04-16 13:30:17 +02:00
jpirnay 3f1b9d0964 Refactor visual appearance of SystemInformation 2026-04-16 11:57:40 +02:00
jpirnay cd5fe03a09 Clean up 2026-04-15 13:28:43 +02:00
pablohc 0491587df8 feat(keyboard): add password mode with toggle, cursor visual improvements, and layout unification 2026-04-15 11:57:13 +02:00
jpirnay 03b3e1e5b7 Provide a clearer message for TLS 1.3 cases 2026-04-13 11:32:19 +02:00
jpirnay 87a4ae4bca Amend password entry 2026-04-12 22:35:59 +02:00
jpirnay bec30e3403 Review fixes 2026-04-12 22:25:12 +02:00
jpirnay f4107677f8 Reformat kosync settings 2026-04-12 21:48:25 +02:00
jpirnay 7dc6fbea06 format 2026-04-12 20:42:28 +02:00
jpirnay 54807911e7 Introduce common helper functions 2026-04-12 20:30:14 +02:00
jpirnay df3fec574d Add submenus 2026-04-12 14:21:48 +02:00
jpirnay 1f1777385c Fix unary operator 2026-04-12 07:41:27 +02:00
jpirnay 9f16066bce Submenu basis 2026-04-12 07:21:42 +02:00
jpirnay 7feff4e241 Step 3 2026-04-12 06:49:28 +02:00
jpirnay c6094dce22 Strart with System settings 2026-04-12 06:12:27 +02:00
jpirnay 552dc37d28 Stage 2 2026-04-12 05:49:27 +02:00
jpirnay e72ad0d2a9 Refacrored the separator component to be more flexible and reusable across different activities. Updated the EpubReaderMenuActivity and ClockSettingsActivity to utilize the new separator component for better UI consistency and maintainability. This change also involved updating the UITheme component to support the new separator styles. 2026-04-12 05:46:10 +02:00
jpirnay 6cae4d4b89 yaclf 2026-04-09 22:49:36 +02:00
jpirnay 83bc8b41a4 Revert "More reshaping"
This reverts commit 14dcd8be0f.
2026-04-09 22:49:02 +02:00
jpirnay 14dcd8be0f More reshaping 2026-04-09 21:50:32 +02:00
jpirnay 68f175eced Restructure ClockSettings 2026-04-09 16:50:13 +02:00
jpirnay 32d44eb158 Review changes 2026-04-09 13:33:20 +02:00
jpirnay 82a32f9f46 Show SD-card info only if requested 2026-04-09 12:58:19 +02:00
jpirnay a4a0e6b5dc Merge branch 'feat-weather' of https://github.com/jpirnay/crosspoint-reader into mybuild 2026-04-02 18:37:55 +02:00
jpirnay 049a63a8c1 Add proper weather forecast screen 2026-04-02 17:17:50 +02:00
jpirnay ddc60d85f1 More integration hell 2026-03-30 10:04:39 +02:00
jpirnay 4afce54c69 Merge branch 'feat-additional-compensation' of https://github.com/jpirnay/crosspoint-reader into mybuild
# Conflicts:
#	lib/hal/HalClock.cpp
#	src/CrossPointSettings.h
#	src/activities/reader/KOReaderSyncActivity.cpp
#	src/activities/settings/SettingsActivity.cpp
#	src/activities/settings/SettingsActivity.h
2026-03-30 09:17:29 +02:00