Commit Graph
149 Commits
Author SHA1 Message Date
jpirnay a3cef380a7 Refactor pendig thumbnails 2026-05-18 16:42:38 +02:00
jpirnay c642dc8454 yaclf 2026-05-16 21:09:53 +02:00
jpirnay 425bd47bcd Change subsection name 2026-05-16 12:25:04 +02:00
jpirnay a5fa7adcd7 Change mark as read behaviour 2026-05-16 12:11:00 +02:00
jpirnay 9bcc7b5e4f Add context menu to filebrowser 2026-05-16 09:21:49 +02:00
jpirnay 1a6ddc4eda Add info string to list 2026-05-15 21:07:58 +02:00
jpirnay 3ed5bc3673 Remove missing books from recent list 2026-05-15 19:22:58 +02:00
jpirnay e922b70744 Merge pull request #214 from jpirnay/feat-recentview
feat: Add 3x3 recent grid view
2026-05-14 18:29:05 +02:00
jpirnay 28416721b9 Fix 2026-05-14 17:10:10 +02:00
jpirnay 5c4d47376b Amend balck rect around image 2026-05-14 16:31:51 +02:00
jpirnay 3eeee72d23 Properly distinguish double / single clicks 2026-05-14 16:15:32 +02:00
jpirnay 8e5907ffc6 Proper sidecar precedence 2026-05-13 22:53:05 +02:00
jpirnay da9b3fe60d Add 3x3 grid view 2026-05-13 22:42:11 +02:00
jpirnay 776728d8e8 Consolidate cache directories 2026-05-13 22:10:13 +02:00
jpirnay c8c697da06 Add double and long clicks in lists 2026-05-13 14:00:07 +02:00
jpirnay f6d2b7442b Allow (empty) directory removal 2026-05-09 00:15:28 +02:00
jpirnay 79ef2eea91 Some fixes for cover generation 2026-05-08 18:04:41 +02:00
jpirnay 13e87ff470 Reduce memory need 2026-05-08 17:29:59 +02:00
jpirnay 98e7c14c16 Proper sidecar cover support 2026-05-08 16:09:39 +02:00
jpirnay 8a92edcea5 Add and refactor LyraCarouselTheme by zgredex 2026-05-08 09:36:12 +02:00
jpirnay 4005bf55e5 Add Lyra Carousel home theme 2026-05-07 23:42:35 +02:00
jpirnay a0aee0ba1b SD-card firmware update + X3 bootloader compatibility (#1786) 2026-05-07 19:38:12 +02:00
jpirnay 8cebf6e319 Fix button race 2026-05-02 23:38:19 +02:00
jpirnay 1f6ddddd59 Use new method to decide button press 2026-04-27 20:56:06 +02:00
jpirnay 1d8f03f757 Merge remote-tracking branch 'origin/master' into feat-autosync 2026-04-27 20:42:15 +02:00
jpirnayandCopilot 066ec3d56b Fixes
Co-authored-by: Copilot <copilot@github.com>
2026-04-27 18:45:16 +02:00
jpirnayandCopilot aed297b2b1 First attempt
Co-authored-by: Copilot <copilot@github.com>
2026-04-27 15:30:43 +02:00
jpirnay ea99b764ce Review changes 2026-04-27 14:38:20 +02:00
jpirnayandCopilot e1d623bd9c Refactor duplicate/stale button handler
Co-authored-by: Copilot <copilot@github.com>
2026-04-27 13:42:39 +02:00
jpirnay 5b0a7743d1 Cache reader progress 2026-04-26 23:21:19 +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 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 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 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 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 84dbabc772 Remaining incompatibilities 2026-04-15 12:52:49 +02:00
jpirnay 8812d3fb0e use correct string 2026-04-15 10:44:20 +02:00
jpirnay b0843fbbb2 Review fixes 2026-04-15 10:40:19 +02:00
jpirnay 2f4cea3706 Add Global Bookmark feature 2026-04-15 09:32:52 +02:00
jpirnay f2750356de Full refresh for non-portrait mode 2026-04-14 15:12:29 +02:00
jpirnay b008baf8aa Paginate through bookinfo if required 2026-04-14 14:28:02 +02:00
jpirnay 1459e9fb61 Revert "Prevent render conficts (hopefully)"
This reverts commit 0f2ab3b39d.
2026-04-09 23:41:09 +02:00
jpirnay 0f2ab3b39d Prevent render conficts (hopefully) 2026-04-09 23:31:18 +02:00
jpirnay 0db005629e Async processing of thumbnails 2026-04-08 16:04:22 +02:00