feat: BookInfo button mapping, ManageBook integration, cover regen fix
- Fix BookInfo buttons: Left/Right front = scroll down/up, Confirm = no-op, side buttons retained. Separate Up/Down hints on btn3/btn4. - Fallback load: try epub.load(true, true) when cache-only load fails, so Book Info works for unopened books. - Add "Book Info" to ManageBook menu (BOOK_INFO action) with handlers in all 4 result sites (Home, Recent, FileBrowser, Reader). - Fix HomeActivity cover regen: call generateCoverBmp(false) + validate with isValidThumbnailBmp before falling to placeholder, matching the reader's multi-tier fallback pipeline. Same for XTC branch. Made-with: Cursor
This commit is contained in:
51
chat-summaries/2026-03-09_02-30-summary.md
Normal file
51
chat-summaries/2026-03-09_02-30-summary.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# BookInfo Button Mapping, Fallback Load, ManageBook Integration, Cover Regen Fix
|
||||
|
||||
**Date**: 2026-03-09
|
||||
**Task**: Implement fixes 1-5 from the BookInfo Buttons and Load plan
|
||||
|
||||
## Changes Made
|
||||
|
||||
### BookInfoActivity.cpp — Fixes 1-3
|
||||
|
||||
1. **Button mapping** (`loop()`): Removed `Confirm` as exit trigger. Added `Left` and `Right` front buttons as scroll-down/scroll-up handlers alongside existing side-button `Down`/`Up` and `PageForward`/`PageBack`.
|
||||
2. **Button hints** (`render()`): Updated `mapLabels` to show `STR_DIR_DOWN` on Left (btn3) and `STR_DIR_UP` on Right (btn4), with separate variables for each direction instead of a single combined hint.
|
||||
3. **Fallback load** (`onEnter()`): Changed `epub.load(false, true)` pattern to try `epub.load(true, true)` on failure, ensuring cache is built for books that were never opened. XTC branch already builds unconditionally via `xtc.load()`.
|
||||
|
||||
### BookManageMenuActivity — Fix 4
|
||||
|
||||
- Added `BOOK_INFO` to `Action` enum (first entry)
|
||||
- Added `STR_BOOK_INFO` menu item as first entry in `buildMenuItems()`
|
||||
- Handled `BOOK_INFO` in all 4 result sites:
|
||||
- `HomeActivity::openManageMenu()` — launches `BookInfoActivity` via `startActivityForResult`
|
||||
- `RecentBooksActivity::openManageMenu()` — same pattern
|
||||
- `FileBrowserActivity::handleManageResult()` — same pattern
|
||||
- `EpubReaderActivity` inline switch — same pattern
|
||||
- Added `BOOK_INFO` no-op case to `executeManageAction()` in Home/Recent to prevent compiler warnings
|
||||
|
||||
### HomeActivity cover regeneration — Fix 5
|
||||
|
||||
- After `generateThumbBmp()` fails or produces invalid BMP, now calls `generateCoverBmp(false)` to extract the full cover from the EPUB before retrying thumbnail generation
|
||||
- Added `Epub::isValidThumbnailBmp()` validation after each `generateThumbBmp()` call
|
||||
- Applied same pattern to XTC branch using `xtc.generateCoverBmp()` + validation
|
||||
- This aligns the HomeActivity pipeline with the EpubReaderActivity's multi-tier fallback approach
|
||||
|
||||
## Files Changed
|
||||
|
||||
- `src/activities/home/BookInfoActivity.cpp` — button mapping, hints, fallback load
|
||||
- `src/activities/home/BookManageMenuActivity.h` — BOOK_INFO enum entry
|
||||
- `src/activities/home/BookManageMenuActivity.cpp` — BOOK_INFO menu item
|
||||
- `src/activities/home/HomeActivity.cpp` — BOOK_INFO handler + cover regen fix
|
||||
- `src/activities/home/RecentBooksActivity.cpp` — BOOK_INFO handler
|
||||
- `src/activities/home/FileBrowserActivity.cpp` — BOOK_INFO handler
|
||||
- `src/activities/reader/EpubReaderActivity.cpp` — BOOK_INFO handler
|
||||
|
||||
## Build Result
|
||||
|
||||
Build succeeded — 0 errors, 0 code warnings. RAM: 30.3%, Flash: 95.7%.
|
||||
|
||||
## Follow-up Items
|
||||
|
||||
- Test on device: verify all 4 BookInfo entry points work (Home manage, Recent manage, FileBrowser manage, Reader manage)
|
||||
- Test cover regeneration after DELETE_CACHE from reader menu
|
||||
- Verify button mapping on BookInfo screen (Left=down, Right=up, side buttons=scroll)
|
||||
- Verify Book Info shows for books that have never been opened
|
||||
Reference in New Issue
Block a user