Commit Graph
1049 Commits
Author SHA1 Message Date
jpirnay 477f3aa886 Merge branch 'feat-sdcard-info' of https://github.com/jpirnay/crosspoint-reader into mybuild 2026-03-19 11:20:47 +01:00
jpirnay def6c2063a Dont freeze UI on calculation 2026-03-19 11:20:07 +01:00
jpirnay 12bf78592f Reuse SDCArdManager logic 2026-03-19 11:12:48 +01:00
jpirnay 89230a79dd Merge branch 'feat-charger' of https://github.com/jpirnay/crosspoint-reader into mybuild 2026-03-18 21:06:54 +01:00
jpirnay 1e8286a15a Add symbol to lyra icon 2026-03-18 21:06:24 +01:00
jpirnay 5d11469c31 Merge branch 'refactor-i18n_offset-table' of https://github.com/jpirnay/crosspoint-reader into mybuild 2026-03-18 20:48:30 +01:00
Zach Nelson b42c56b50c fix: Build with -fno-exceptions (#1412)
## Summary

**What is the goal of this PR?**

Until today, I sincerely thought we were building without exception
support. The codebase is not set up with any exception handling
infrastructure. The SKILL.md file specifies no exceptions.

I just learned that we actually were building with exceptions enabled,
with `-fexceptions` coming from
~/.platformio/packages/framework-arduinoespressif32-libs/esp32c3/pioarduino-build.py.

This change removes the `-fexceptions` flag and adds `-fno-exceptions`.
The result is **53,670 bytes in flash savings**.

---

### 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-18 11:41:18 -05:00
Stefan Blixten Karlsson b813d87b97 fix: Reduce flash usage by cleaning up I18n translations (#1401)
## Summary

* **What is the goal of this PR?** 
Removing no longer used i18n keys/string, to reduce (~28k) used flash
space.
To correct to swedish translations for `STR_FONT_SIZE` and
`STR_KOREADER_SYNC`.

* **What changes are included?**
   `lib\I18n\translations\*`

## 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-18 09:59:03 -05:00
jpirnay 67f5cf9cdb feat: Show hidden directories in browser (#1288)
## Summary

* **What is the goal of this PR?** Add setting to display hidden files /
directories in filebrowser / web file browser
* **What changes are included?**

## Additional Context

-

---

### 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-18 09:57:58 -05:00
jpirnay 2efef0c519 Merge branch 'feat-charger' of https://github.com/jpirnay/crosspoint-reader into mybuild 2026-03-18 13:27:02 +01:00
jpirnay 3cc9538cca Another review comment 2026-03-18 13:13:56 +01:00
jpirnay 72b00e1829 Review comments 2026-03-18 13:09:58 +01:00
jpirnay ec864a25e0 Fix const 2026-03-18 13:04:02 +01:00
jpirnay ce6676d211 Add immediate response for usb cable plug in / removal 2026-03-18 12:56:35 +01:00
jpirnay ba7aa1e694 Merge branch 'feat-overlay' of https://github.com/jpirnay/crosspoint-reader into mybuild 2026-03-18 12:38:54 +01:00
jpirnay 7144450934 Fix information box 2026-03-18 12:38:08 +01:00
jpirnay 0a8a644773 Merge branch 'feat-charger' of https://github.com/jpirnay/crosspoint-reader into mybuild 2026-03-18 12:26:24 +01:00
jpirnay a7494c232c Mirroring PR #537 2026-03-18 12:24:44 +01:00
jpirnay d71b524f18 YACLF 2026-03-18 12:06:43 +01:00
jpirnay 73b9f2028a yaclf 2026-03-17 22:07:14 +01:00
jpirnay 7df68fcf31 Merge branch 'feat-sdcard-info' of https://github.com/jpirnay/crosspoint-reader into mybuild 2026-03-17 21:27:10 +01:00
jpirnay c46490fd43 Reformat file size 2026-03-17 21:24:06 +01:00
jpirnay ce0c429dae Refine 2026-03-17 21:12:42 +01:00
jpirnay 06f8bbfa36 Merge branch 'temp_info' of https://github.com/jpirnay/crosspoint-reader into feat-sdcard-info 2026-03-17 21:06:41 +01:00
jpirnay 6dc719ca69 Add Info Activitiy 2026-03-17 21:05:46 +01:00
jpirnay f23d01093e Amend regex pattern for tr identification 2026-03-17 07:07:47 +01:00
Zach Nelson 415965c21b fix: Prevent line breaks on common English contractions (#1405) 2026-03-16 20:04:06 -04:00
jpirnay 2419cc43bf fix missing header 2026-03-16 23:52:13 +01:00
jpirnay 65e100d196 review 2026-03-16 23:44:25 +01:00
jpirnay fd685a5e14 Expose freebytes too 2026-03-16 21:28:06 +01:00
jpirnay eb4a0e3a7c Review comments 2026-03-16 21:25:27 +01:00
jpirnay 3e7a8bf8ff Relocate logic 2026-03-16 20:33:58 +01:00
jpirnay 87bbfb26af Display available space on SDCard 2026-03-16 20:26:36 +01:00
jpirnay 7c0095e5c5 Remove no longer needed include 2026-03-16 20:03:46 +01:00
jpirnay 2e8ee680a7 perf: strip unused strings during PlatformIO build 2026-03-16 15:47:35 +01:00
jpirnay 72a0d2a611 chore: remove unused STR_CALIBRE from German translations 2026-03-16 15:44:38 +01:00
jpirnay 039337b4eb Show sizes 2026-03-16 15:41:25 +01:00
jpirnay 9b6035820d Show sizes, too 2026-03-16 15:31:59 +01:00
jpirnay 960cb91b23 Optimize output 2026-03-16 15:10:41 +01:00
jpirnay e4b0abec03 Fix english hyphenation 2026-03-16 11:51:28 +01:00
jpirnay 125ef361d2 fix: jpeg resource cleanup (#1320)
## Summary

* **What is the goal of this PR?** Fix leak on decode error path in JPEG
converter
* **What changes are included?**
Unif resource cleanup

## Additional Context

---

### 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? _**PARTIALLY**_
Identification of the issue by AI
2026-03-13 17:45:42 -05:00
jpirnay 7a940d0a4b Fix 2026-03-13 21:38:29 +01:00
jpirnay 9b70ddc93b Merge branch 'master' of https://github.com/jpirnay/crosspoint-reader into mybuild 2026-03-13 21:24:04 +01:00
jpirnay beeab0ff55 cast currentpage 2026-03-13 21:15:05 +01:00
fsocietyipaandOkzhetpes dabdfcd683 feat: Add Kazakh (kk) language support (#1377)
## Summary

* **What is the goal of this PR?** Implements Kazakh language
* **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?  YES

---------

Co-authored-by: Okzhetpes <okhzetpes.20@gmail.com>
2026-03-11 18:40:14 -05:00
jpirnay fb3997aae5 fix: Init lastSleepImage (edge case) (#1360)
## Summary

* **What is the goal of this PR?** fix edge case for definition

## Additional Context

If loadFromFile() returns false (no state file exists — first boot, or
SD missing), lastSleepImage is never set and contains garbage.
[SleepActivity.cpp:83] then uses it in a while comparison to avoid
repeating the same image. The JSON path (doc["lastSleepImage"] |
(uint8_t)0) handles it, but only if the file exists.

---

### 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-11 18:37:13 -05:00
jpirnay 1b97c4602d chore: change label while on settings tab actions (#1325)
## Summary

* **What is the goal of this PR?** The "Toggle" label while on the "tab"
actions of settings screen was misleading. Will show "Select" now ,
while "Toggle" remains in place for all 'real' settings

* **What changes are included?**

## Additional Context
<img width="240" alt="1"
src="https://github.com/user-attachments/assets/dc198716-0aad-4c75-96fe-52595625e69d"
/>
<img width="240" alt="2"
src="https://github.com/user-attachments/assets/85ce5368-801c-489d-aa94-51f126c3ddc8"
/>


---

### 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-11 18:36:34 -05:00
117936a78e fix: back button in settings returns to tab bar first (#1354)
## Summary
- Pressing Back while browsing settings within a category now jumps
focus to the category tab bar
- Pressing Back again from the tab bar exits settings to home
- Previously, Back always exited directly to home regardless of scroll
position

Closes #797

## Test plan
- [ ] Scroll deep into a settings category → press Back → tab bar is
focused
- [ ] Press Back again from tab bar → exits to home screen
- [ ] Use category switching (continuous hold) → still works as before
- [ ] Settings are saved on exit (not on tab-bar jump)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: bkb <bkb@arcnode.xyz>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 18:35:48 -05:00
jpirnay 906dd202b9 fix: Add special handling for apostrophe hyphenation (#1318)
## Summary

* **What is the goal of this PR?** Fixing / extending the hyphenation
logic to deal with words containing an apostophe as raised in #1186
* **What changes are included?**

## Additional Context

---

### 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? _**PARTIALLY**_ (as the
user provided a thorough analysis that I followed)
2026-03-11 18:35:23 -05:00
Adrian Wilkins-Caruana 1409259721 perf: font-compression improvements (#1056)
## Purpose

This PR includes some preparatory changes that are needed for an
upcoming performant CJK font feature. The changes have no impact on
render time and heap allocation for latin text. **Despite this, I think
these changes stand on their own as a better font
compression/decompression implementation.**

## Summary

- Font decompressor rewrite: Replaced the 4-slot LRU group cache with a
two-tier system — a page buffer (glyphs prewarmed before rendering
begins) and a hot-group fallback (last decompressed group retained for
non-prewarmed
  glyphs). 
- Byte-aligned compressed bitmap format: Glyph bitmaps within compressed
groups are now stored row-padded rather than tightly packed before
DEFLATE compression, improving compression ratios by making identical
pixel rows produce
identical byte patterns. Glyphs are compacted back to packed format on
demand at render time. Reduces flash size by 155 KB.
- Page prewarm system: Added `Page::collectText` and
`Page::getDominantStyle` to extract per-style glyph requirements before
rendering, and `GfxRenderer::prewarmFontCache` to pre-decompress only
the groups needed for the dominant style
   — eliminating mid-render decompression for the common case.
- UTF-8 robustness fixes: `utf8NextCodepoint` now validates continuation
bytes and returns a replacement glyph on malformed input;
`ChapterHtmlSlimParser` correctly preserves incomplete multi-byte
sequences across word-buffer flush
  boundaries rather than splitting them.

---

### 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? _**YES**_ Architecture and
design was done by me, refined a bit by Claude. Code mostly by Claude,
but not entirely.
2026-03-11 21:05:46 +01:00