Commit Graph
212 Commits
Author SHA1 Message Date
jpirnay fd111fbf98 Fix screenshot button bleed through 2026-05-01 16:07:48 +02:00
jpirnay 86229823c5 Update German 2026-05-01 10:06:38 +02:00
jpirnay 999cf74c58 Account for deduplication 2026-05-01 09:25:15 +02:00
jpirnayandCopilot cefed0f6ce Yet another bionic reading implementation
Co-authored-by: Copilot <copilot@github.com>
2026-04-30 09:11:49 +02:00
Andrej Kralj 7bacbea9a1 Update Slovenian translation 2026-04-29 10:21:54 +02:00
pablohc 53ca4f30d5 fix: keyboard feedback #1644 (#1697)
Addresses reviewer feedback from #1644:
- **Localize keyboard hint strings** — 13 hardcoded English strings
replaced with \`tr()\` macro (\`STR_KB_HINT_*\`), making them
translatable across all 22 languages (fallback to English when not yet
translated)
- **Deduplicate \`Lyra3CoversMetrics\`** — now derives from
\`LyraMetrics\` via lambda copy, overriding only \`homeCoverTileHeight\`
and \`homeRecentBooksCount\` (eliminates ~30 duplicated metric fields)
- **Unify keyboard drawing in \`BaseTheme\`** — \`drawTextField\` and
\`drawKeyboardKey\` overrides removed from \`LyraTheme\`; variability
controlled via \`keyboardKeyCornerRadius\` metric (0=Base, 6=Lyra).
Unified text field padding to 6, adopted Lyra's secondary label draw
order (main first, then secondary)
- **Add URL-optimized keyboard layout** — \`urlLayout\` with \`:\` and
\`/\` replacing \`=\` and \`,\` for easier URL input without switching
to SYM mode
---

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 **_
2026-04-27 21:28:36 +02:00
jpirnayandCopilot aed297b2b1 First attempt
Co-authored-by: Copilot <copilot@github.com>
2026-04-27 15:30:43 +02:00
jpirnay 54e7aaef82 Updating vietnamese weekdays 2026-04-27 11:39:08 +02:00
jpirnay 5439b120c3 Merge branch 'master' of https://github.com/jpirnay/crosspoint-reader into feat-vietnam 2026-04-27 11:38:31 +02:00
jpirnay 088710378b Add vietnamese (extend UI fonts) 2026-04-26 22:42:50 +02:00
jpirnayandCopilot 3046a1a94a More cleaningup
Co-authored-by: Copilot <copilot@github.com>
2026-04-26 17:12:52 +02:00
jpirnayandCopilot f0fe02d77a Update logic to avoid collision
Co-authored-by: Copilot <copilot@github.com>
2026-04-26 16:46:22 +02:00
jpirnay a1d0ddec49 Introduce extended button handler 2026-04-26 12:26:29 +02:00
jpirnay 539c66efb3 Language updates 2026-04-25 12:38:53 +02:00
jpirnay 646001a672 Add benchmark 2026-04-24 17:08:53 +02:00
jpirnayandCopilot 7533ed1a9c Add font foverrides to reader menu
Co-authored-by: Copilot <copilot@github.com>
2026-04-24 11:38:55 +02:00
jpirnay 1bf0278eec Autorefresh after image pages to get rid of ghosting artifacts (#116) 2026-04-24 10:30:07 +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 7c6e4728f4 Add swedish keyboard translations (#1726) 2026-04-23 09:42:01 +02:00
jpirnay e5e825e7a5 Update Italian according to #1718 2026-04-23 09:25:50 +02:00
jpirnay 9116070335 Update Spanish according to upstream #1717 2026-04-23 09:24:39 +02:00
jpirnay b7928a86e3 Add hotel Wifi connection 2026-04-21 17:15:56 +02:00
jpirnay 425c1db132 Review comments 2026-04-20 21:16:31 +02:00
jpirnay a00712a085 Adjust warnings for x3 2026-04-20 20:50:33 +02:00
jpirnay 2d6898362b Update Turkish 2026-04-16 14:59:36 +02:00
jpirnay 241f966b7e Update languages 2026-04-16 14:45:05 +02:00
jpirnay 47b46a24b9 Use common activity pattern 2026-04-16 14:20:35 +02:00
jpirnay 3f1b9d0964 Refactor visual appearance of SystemInformation 2026-04-16 11:57:40 +02:00
jpirnay 5879ef8778 Add instructions 2026-04-15 18:52:02 +02:00
jpirnay 2f4cea3706 Add Global Bookmark feature 2026-04-15 09:32:52 +02:00
jpirnay f7bf43d39b Update slovenian 2026-04-15 09:12:13 +02:00
jpirnay 8f898fc32b Update languages 2026-04-14 19:08:09 +02:00
jpirnay f9f856f961 Extending 2026-04-14 18:23:10 +02:00
jpirnay 4aabcc934c Integrate and extend pr 1372 by andreaturchet 2026-04-14 18:22:54 +02:00
jpirnay e0afe7de98 Some more languages 2026-04-14 14:58:11 +02:00
jpirnay f7db9f9d58 Update German 2026-04-14 14:52:15 +02:00
jpirnay b008baf8aa Paginate through bookinfo if required 2026-04-14 14:28:02 +02:00
jpirnay b39c4710d2 Integrate upstream 1626 + 1658 2026-04-14 10:00:46 +02:00
jpirnay 04af4e3853 Merge pull request #66 from jpirnay/feat-kbd
refactor: redesign on-screen keyboard (Upstream #1644 by pablohc) + pwd show/hide toggle
2026-04-12 23:41:54 +02:00
jpirnay 5f82a28ac6 Slight layout changes 2026-04-12 23:32:19 +02:00
jpirnay 1feb65ff70 Merge pull request #65 from jpirnay/feat-opds
feat: Add OPDS search support & next/prev page navigation (upstream #1462)
2026-04-12 23:13:15 +02:00
jpirnay cf3ab19c77 add OPDS search support & next/prev page navigation (upstream #1462) 2026-04-12 22:49:33 +02:00
jpirnay bec30e3403 Review fixes 2026-04-12 22:25:12 +02:00
jpirnay d2b13e7a43 Remove duplicate keys 2026-04-12 22:19:10 +02:00
jpirnay f4107677f8 Reformat kosync settings 2026-04-12 21:48:25 +02:00
jpirnay df3fec574d Add submenus 2026-04-12 14:21:48 +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 d37621574c Redesign web server to avoid lengthy system stats retrieval 2026-04-11 08:28:06 +02:00
jpirnay 83bc8b41a4 Revert "More reshaping"
This reverts commit 14dcd8be0f.
2026-04-09 22:49:02 +02:00