Commit Graph
566 Commits
Author SHA1 Message Date
jpirnay 2faeb550fa More fixes 2026-04-23 22:35:07 +02:00
jpirnayandCopilot c04153ec5a Address cppcheck
Co-authored-by: Copilot <copilot@github.com>
2026-04-23 22:14:41 +02:00
jpirnayandCopilot e968a54e77 Improve nested lists
Co-authored-by: Copilot <copilot@github.com>
2026-04-23 22:04:19 +02:00
jpirnayandCopilot e0c42278ad Stupid fix
Co-authored-by: Copilot <copilot@github.com>
2026-04-23 21:51:22 +02:00
jpirnay c2d51d6772 clang 2026-04-23 21:39:27 +02:00
jpirnay cf376df34c Rename 2026-04-23 21:37:52 +02:00
jpirnayandCopilot 35735b5175 Add code style
Co-authored-by: Copilot <copilot@github.com>
2026-04-23 21:36:31 +02:00
jpirnayandCopilot 01a9d7cb36 Add TOC support
Co-authored-by: Copilot <copilot@github.com>
2026-04-23 21:27:14 +02:00
jpirnay a90290a596 add Markdown (.md) file reader with formatting support #1698 by dcherrera 2026-04-23 21:00:19 +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 7da8b335ab Review comments 2026-04-21 22:16:23 +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 b7928a86e3 Add hotel Wifi connection 2026-04-21 17:15:56 +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 a7638bb7d3 Merge pull request #87 from jgoguen/opds-multi-format-select
feat(opds): Allow selecting the download format
2026-04-20 14:26:00 +02:00
jpirnay 83fe041a6b Merge pull request #109 from jpirnay/kosync_extension
refactor: Picking up some itsthisjustin ideas for KOreader synchronisation
2026-04-20 14:21:31 +02:00
jpirnay bbafd4ce62 Display error reason on ntp time sync fail 2026-04-20 10:32:52 +02:00
Joel Goguen 1986092522 feat(opds): Allow selecting the download format
When downloading a book via OPDS, the last acquisition link is chosen when there are multiple. This allows choosing which format to download when there are many. Having only one format will automatically download that.
2026-04-19 23:15:54 -04:00
jpirnay d6292920d9 Picking up some itsthisjutin ideas 2026-04-19 19:03:43 +02:00
jpirnay 3e28b45888 Fix according to comment 2026-04-17 21:05:30 +02:00
jpirnay e74e52b23a Review comments 2026-04-17 20:59:49 +02:00
jpirnay d39246ee70 yaclf 2026-04-17 20:54:49 +02:00
jpirnay 6ca8de8329 Reduce debug logging 2026-04-17 20:43:36 +02:00
jpirnay b4881e1563 Refactor ActivityManager calls 2026-04-17 20:23:42 +02:00
jpirnay ef088db789 Add more logging 2026-04-17 19:09:16 +02:00
jpirnay bf7869dfce More logging points 2026-04-17 18:44:50 +02:00
jpirnay e5cd758380 Add logs 2026-04-17 18:17:35 +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 4bada707b3 Fix getter 2026-04-17 16:46:48 +02:00
jpirnay efbe8adf43 cppcheck finding 2026-04-17 16:41:24 +02:00
jpirnay e0fb3e0160 More comments 2026-04-17 16:25:29 +02:00
jpirnay af018af03a style fixes 2026-04-17 15:59:58 +02:00
jpirnay 87b9d333f7 Review changes 2026-04-17 15:54:08 +02:00
jpirnay 2b17872c16 Refactor spaghetti code 2026-04-17 15:39:02 +02:00
jpirnay 3b8b389408 Refactor Settings usage 2026-04-17 15:38:37 +02:00
jpirnay f0fb6c20aa Better recommendation which state to apply 2026-04-17 11:06:09 +02:00
jpirnay 052bd016a0 Change Labels for Webui 2026-04-16 16:53:18 +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 0a472d9dbb Merge pull request #85 from jpirnay/rebase-keyboardpr1644
feat: Take new keyboard features on board (upstream 1644 by pablohc)
2026-04-15 19:52:30 +02:00