Commit Graph
127 Commits
Author SHA1 Message Date
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
jpirnay e719d3d457 Put things out of loop 2026-04-08 14:43:16 +02:00
jpirnay 07906853d6 Add aditional RenderLocks 2026-04-08 14:17:43 +02:00
jpirnay c0797b385a Show file extensions in browser (user option) 2026-04-06 19:34:08 +02:00
jpirnay f45b780900 Support png and jpg in Image Viewer 2026-04-06 12:39:37 +02:00
jpirnay 077d134ac8 Adjust menu design to still fit on screen 2026-04-05 22:44:05 +02:00
jpirnay f75bbf5b1e Short press will go back to origin / long press will go back to home 2026-04-05 21:37:28 +02:00
jpirnay 7e2291915f Merge branch 'x3-support'
# Conflicts:
#	lib/GfxRenderer/GfxRenderer.h
#	open-x4-sdk
2026-04-04 10:05:14 +02:00
jpirnay 25207d57cb Address cppcheck complaints 2026-04-04 09:43:15 +02:00
jpirnay 6de5ebc69c Merge branch 'feat-weather' of https://github.com/jpirnay/crosspoint-reader into mybuild 2026-04-03 11:06:17 +02:00
jpirnay 01d05e654d Bugfixing and refactoring - proper menu icons 2026-04-03 11:03:10 +02:00
Justin Mitchell 0db9d93f1c feat: add Xteink X3 hardware support
Adds HAL-level support for the Xteink X3 (SSD1677 controller, 792x528
display). Includes device detection, display initialization, button
mapping, power management, and theme adjustments for the X3 form factor.
2026-04-03 04:04:17 -04:00
jpirnay 783828adb0 Merge branch 'feat-weather' of https://github.com/jpirnay/crosspoint-reader into mybuild 2026-04-02 20:19:43 +02:00
jpirnay b3a80c162a Review changes 2026-04-02 20:19: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 6be2627b59 Merge branch 'feat-remove-from-recents' of https://github.com/jpirnay/crosspoint-reader into mybuild 2026-03-25 19:55:39 +01:00
jpirnay 4abfc06380 Fix regression 2026-03-25 19:55:13 +01:00
jpirnay b48dffa38d feat: Make directories stand out more in local file browser: "[dir]" instead of "dir" (#1339)
## Summary

* **What is the goal of this PR?** It's difficult to distinguish
directory names from normal file entries, so they are displayed now as
"[dir]" instead of "dir" for classic theme
* **What changes are included?**

## Additional Context

* Add any other information that might be helpful for the reviewer
(e.g., performance implications, potential risks,
  specific areas to focus on).

---

### AI Usage

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? _**NO**_
2026-03-24 19:47:42 -05:00
jpirnay 2460a96132 flatten logic 2026-03-23 21:43:23 +01:00
jpirnay cc46225f22 Merge branch 'feat-remove-from-recents' of https://github.com/jpirnay/crosspoint-reader into mybuild 2026-03-23 21:43:06 +01:00
jpirnay 7ad9d6cf14 Hide buttons when empty 2026-03-23 21:37:49 +01:00
jpirnay dc6074225c Use proper term 2026-03-23 21:30:22 +01:00