Commit Graph
605 Commits
Author SHA1 Message Date
Justin Mitchell c3c2d7b099 Merge remote-tracking branch 'origin/develop' into feat-bluetooth 2026-08-07 05:38:14 -04:00
Uri Tauber e00f5958df feat: guard against cross-chip firmware installs (#2880) 2026-08-07 09:42:29 +03:00
Justin Mitchell c507e54478 fix: thread-safety issues in credential store (#2834) 2026-08-07 01:16:22 +03:00
Uri Tauber 5eec70de36 add IPA intervals to SD fonts 2026-08-07 01:08:29 +03:00
+19 28f3260c51 chore: update translations (#2740)
Co-authored-by: Leopoldo Pla Sempere <leopoldo.pla@treelogic.com>
Co-authored-by: muhas <muhas@muhas.ru>
Co-authored-by: Matteo Scopel <matteo@scopel.email>
Co-authored-by: CookieCaptainD <65847023+CookieCaptainD@users.noreply.github.com>
Co-authored-by: Poc031205 <165477165+Poc031205@users.noreply.github.com>
Co-authored-by: Rodrigo Matsuura <matsuura@outlook.com.br>
Co-authored-by: Spigaw <73850535+Spigaw@users.noreply.github.com>
Co-authored-by: Tom-Inge Larsen <tom.inge@gmail.com>
Co-authored-by: Baris Albayrak <80099286+barbarhan@users.noreply.github.com>
Co-authored-by: Barış Albayrak <barisa@pop-os.lan>
Co-authored-by: Hendra Kusumah <h.kusumah87@gmail.com>
Co-authored-by: thehijacker <thehijacker@gmail.com>
Co-authored-by: Andrej Kralj <andrej.kralj@gmail.com>
Co-authored-by: Bastian <391732+dasrecht@users.noreply.github.com>
Co-authored-by: th0m4sek <53303628+th0m4sek@users.noreply.github.com>
Co-authored-by: Dexif <spev@gurtam.team>
Co-authored-by: Mirus <mirusim@gmail.com>
Co-authored-by: Mirza Arnaut <mirza.arnaut45@gmail.com>
Co-authored-by: Husam Younis <youhusam@gmail.com>
Co-authored-by: Ing. Jan Kaláb <jan+github@kalabovi.org>
Co-authored-by: Tadas <tadasss@gmail.com>
Co-authored-by: winst0niuss <chumachenko.vadym@gmail.com>
Co-authored-by: fsocietyipa <fsociety.ipa@gmail.com>
Co-authored-by: Okzhetpes <okzhetpes.valikhanov@gmail.com>
Co-authored-by: KymAndriy <32357131+KymAndriy@users.noreply.github.com>
Co-authored-by: KymAndriy <test@notamail.ua>
Co-authored-by: Martin <35097765+neresus@users.noreply.github.com>
Co-authored-by: Hoang Manh Linh <jetaudio.media@gmail.com>
2026-08-06 23:39:05 +03:00
Phạm Bình An 046827fc31 fix(epub): ruby overflows right border when justifying text, unwanted short lines in Chinese and Japanese (#2781) 2026-08-06 23:26:09 +03:00
Justin Mitchell 28af4189d4 Chunk font bitmap allocations to avoid fragmentation
Replace single contiguous miniBitmap allocation with fixed 4KB chunks to allow large font page bitmaps (20-40KB) to fit in fragmented heap. Each glyph is kept whole within one chunk by padding to next chunk boundary when needed. Falls back to overflow path if glyph exceeds chunk size or max chunks reached. Mirrors existing image .pxc slot chunking strategy.
2026-08-05 16:21:17 -04:00
Justin Mitchell f45f75f966 Add emergency buffer for font glyph rendering
Prevents bold-italic glyphs from rendering blank under heap pressure (when BLE is resident). Pre-allocates a 1KB emergency buffer at font load time when heap is healthy. When per-glyph malloc fails during overflow, falls back to this buffer to render the glyph directly instead of returning null. The emergency buffer bypasses the cache ring and is overwritten on each use, which is safe since getGlyphBitmap() consumes bitmaps immediately.
2026-08-05 15:28:48 -04:00
Jesse Vincent 53232eefab fix: recognize watchdog-triggered resets as panics (#2830) 2026-08-05 22:02:41 +03:00
Justin Mitchell 7dbfcbb52d Split font scan buffers by text style
Previously a single scan buffer was used for all text styles (regular, bold, italic, bold-italic), causing the font decompressor to allocate full-page buffers for each style during prewarming. This led to OOM failures when the BLE stack was resident, causing bold/italic glyphs to render blank.

Now each style maintains its own scan buffer, sized only for the text actually rendered in that style. This keeps secondary style buffers small and prevents allocation failures.
2026-08-05 12:35:49 -04:00
Justin Mitchell 981e73c137 Merge remote-tracking branch 'origin/develop' into feat-bluetooth 2026-08-05 10:59:48 -04:00
Uri Tauber 9c48609f8b Make bookmarks survive re-pagination
Ties bookmarks to the actual text on the page rather than to a page number. Page numbers shift whenever the book gets re-laid-out — changing font size, margins, line spacing, or rotating the screen — which could previously land you on the wrong spot.

This is a followup of #2805, making bookmarks use the same mechanism. Several minor improvments ride along.
2026-08-02 00:06:12 +03:00
Thiago Kenji Okada 0f747b82a1 fix: make EPUB sync positions content-based (#2805) 2026-08-01 23:37:07 +03:00
Bob Vincent 1a7f5a9e38 perf: share one static bidi scratch buffer to save ~1.5 KB RAM (#2554) 2026-07-31 19:07:39 +03:00
William Floyd 47466c775d fix: dictionary lookup OOM on .dict.dz definitions (#2791) 2026-07-31 14:16:55 +03:00
Justin Mitchell d0b70b3f9f fix: Replace vector with deque for text token storage (#2814) 2026-07-31 09:42:27 +03:00
Justin Mitchell 200abc6aa4 Replace vector with deque for ParsedText tokens
Prevents firmware crashes on ESP32-C3 when parsing CJK text with thousands of tokens. Vector's contiguous reallocation (64-128 KB) fails under fragmented heap with BLE active. Deque grows in ~512 B chunks, keeping max contiguous allocation under 2 KB regardless of token count.
2026-07-31 01:09:24 -04:00
Justin Mitchell d656fec87a Merge remote-tracking branch 'origin/develop' into feat-bluetooth 2026-07-29 14:37:02 -04:00
Justin Mitchell 2ceeeccd5a fix: Restrict CrossPoint position extension to official server (#2790) 2026-07-29 18:22:38 +03:00
Uri Tauber 9163149adc fix: restore spaces between CJK words (#2768) 2026-07-29 08:29:30 +03:00
William Floyd fe37bf80ab perf: skip ruby scratch allocations on ruby-less lines (#2735) 2026-07-29 00:33:55 +03:00
Justin Mitchell 5713432004 fix: Gyro not powering down on x3 and newer x4 battery latch issues (#2774)
Removes X3ProbeResult struct and associated I2C device detection
functions (probeBQ27220Signature, probeDS3231Signature,
probeQMI8658Signature) along with helper function readI2CReg8 in favor
of an SDK driven device detect API
2026-07-28 16:34:59 -04:00
Uri Tauber 52ff942ab5 perf: drop all-empty ruby vectors from TextBlock (#2772) 2026-07-28 14:49:22 -04:00
Tsz Ho Sze b508f75e79 fix: treat <br> in CJK flowing text as a paragraph separator (#2710) 2026-07-28 21:34:55 +03:00
William Floyd 087c3da462 fix: name dictionary lookup failures (low-memory vs decompress vs read) instead of 'Not found' (#2706) 2026-07-27 07:58:32 +03:00