Commit Graph
191 Commits
Author SHA1 Message Date
jpirnay 25e1a64eb8 More fixes 2026-05-15 00:02:16 +02:00
jpirnay 3dfcdd002f Rearrange menus + fixes 2026-05-14 23:44:30 +02:00
jpirnay 776728d8e8 Consolidate cache directories 2026-05-13 22:10:13 +02:00
jpirnay f55855ab23 Merge pull request #208 from jpirnay/refactor-listhandler
feat: Add double and long clicks in lists
2026-05-13 14:16:14 +02:00
jpirnay cc05a7eb00 Reduce updates + review comments 2026-05-13 14:08:25 +02:00
jpirnay c8c697da06 Add double and long clicks in lists 2026-05-13 14:00:07 +02:00
jpirnay d6fd744b3c Font Manager overhaul 2026-05-13 12:39:24 +02:00
jpirnay 693a650094 Add option to remove a downloaded font 2026-05-12 14:33:14 +02:00
jpirnay 4982f803a7 A couple of fixes 2026-05-11 23:02:27 +02:00
jpirnay 2b1dbb6737 Add extended TiltModel 2026-05-11 16:29:40 +02:00
jpirnay 6059cb8a25 Add firmware update options to submenu 2026-05-09 00:36:54 +02:00
Joel Goguen 3a612df4b5 feat: Allow OTA update to beta releases 2026-05-07 23:29:15 -04:00
jpirnay 3a93355d98 Proper linewrap and centering 2026-05-07 20:02:35 +02:00
jpirnay eb203f3ba3 Properly wrap message 2026-05-07 19:54:40 +02:00
jpirnay a0aee0ba1b SD-card firmware update + X3 bootloader compatibility (#1786) 2026-05-07 19:38:12 +02:00
jpirnay 82448e856e Merge pull request #179 from jpirnay/feat-pr1809
feat: Movable status bar and dual-edge progress bars (upstream PR 1809 by LSTAR1900)
2026-05-07 19:19:50 +02:00
jpirnay b56666c96e Review comments 2026-05-07 19:06:48 +02:00
jpirnay f127ec8f9e Review updates 2026-05-07 08:38:23 +02:00
jpirnay 4f140afd10 Movable status bar and dual-edge progress bars 2026-05-06 23:09:26 +02:00
jpirnay dedc5bd4af Send optional document metadata with KOSync progress uploads 2026-05-06 22:44:47 +02:00
jpirnay 7789a18bb4 cppcheck issue 2026-05-04 13:12:19 +02:00
jpirnayandCopilot 3df8ce56de Font Manager Update
Co-authored-by: Copilot <copilot@github.com>
2026-05-04 00:34:17 +02:00
jpirnay 3bd18d855d Amend fonts 2026-05-03 23:40:45 +02:00
jpirnay 5617db3ad2 Fix font-location 2026-05-03 22:42:54 +02:00
jpirnay 8526e58ac1 Change button description 2026-05-03 16:26:41 +02:00
jpirnay 8c85623c4d Make better use of screen estate by enforcing landscape orientation 2026-05-03 00:35:16 +02:00
jpirnay e6220793a4 Add a button overview activity 2026-05-03 00:28:22 +02:00
jpirnay e83c5ed80d Update 2026-05-02 23:10:57 +02:00
jpirnayandCopilot ea50449f4b Amend layout
Co-authored-by: Copilot <copilot@github.com>
2026-05-02 18:35:10 +02:00
jpirnayandCopilot a5469c0bb9 Review comments
Co-authored-by: Copilot <copilot@github.com>
2026-05-02 17:22:10 +02:00
jpirnay 816523cc59 Complete download integration 2026-05-02 17:01:25 +02:00
jpirnay df94ccaa86 Recover from merge fiasco 2026-05-02 16:54:31 +02:00
Joel Goguen d148f7290d fix(ota): Correctly select the partition to write to
There was an off-by-one error selecting the new partition, meaning the OTA
update would write to the second partition but the boot would be set to the same
one we're currently in.

I believe this should fix jpirnay/crosspoint-reader#112
2026-04-28 21:26:52 -04:00
jpirnay aa9fae16d9 Integrate upstream #1392 by adriancaruana 2026-04-28 10:00:22 +02:00
jpirnay bc571771fc properly separate menus 2026-04-27 21:14:35 +02:00
jpirnayandCopilot aed297b2b1 First attempt
Co-authored-by: Copilot <copilot@github.com>
2026-04-27 15:30:43 +02:00
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