v1.5.0.22.dev2 — Per-Directional Button Actions + Power Safety
🎮 Independent Per-Directional Button Actions
You can now configure each D-pad direction (Up, Down, Left, Right) long-press, the power button short-press, and the select (center) long-press independently — no more one-setting-fits-all!
Previously, a single "Long Press Behavior" setting applied to both Up and Down D-pad buttons (and Left/Right shared the same front-long-press setting). Now each direction can have its own action. For example:
- Up long-press → FontSize (quick text size adjustment)
- Down long-press → Orientation (flip your screen)
- Left long-press → Dark Mode (quick toggle)
- Right long-press → Full Refresh (clear ghosting)
- Power short-press → Sleep (or anything else!)
- Select long-press → Toggle Bookmark
| Setting | Description |
|---|---|
longPressUpBehavior
| Action when long-pressing the Up D-pad button |
longPressDownBehavior
| Action when long-pressing the Down D-pad button |
frontLongPressLeftBehavior
| Action when long-pressing the Left front button |
frontLongPressRightBehavior
| Action when long-pressing the Right front button |
shortPwrBtn
| Action when short-pressing the power button |
selectLongPressBehavior
| Action when long-pressing the Select button |
Available actions (14 total): Off, Add Clipping, View Clippings, Toggle Bookmark, View Bookmarks, Lookup Word, Dictionary, Chapter Skip, Orientation, Font Size, Dark Mode, Full Refresh, Reader Settings, Reading Time
⚠️ Existing settings migrate automatically — your previous "Long Press Behavior" and "Front Long Press" settings are converted to the new fields on first boot.
🔋 Low-Battery Shutdown Under WiFi Load (#59)
The device now properly shuts down when the battery drops critically low even while the web server, OPDS sync, or OTA update is running. Previously, heavy WiFi activity could prevent the low-battery cutoff from triggering, potentially corrupting the filesystem. A dedicated shutdown screen displays the reason and safely powers off.
🛡️ OTA Download Safety Improvements (#68)
- Minimum battery guard: OTA downloads now require a minimum battery level before starting. If battery is too low, the update is deferred until the device is charging.
- Cancelable download: You can abort an in-progress OTA download mid-stream by pressing any button, returning you to the settings menu without interruption.
📱 ButtonActionSelectorActivity — Popup Selector
A reusable popup-style list selector that replaces the old cycling-based enum navigation for all button action settings. Instead of blindly cycling through options, users now see a full scrollable list of choices in a centered panel overlay.
Key Features
| Feature | Description |
|---|---|
| 📋 Scrollable list | Shows up to 7 visible rows per page with scroll arrows indicating more options above/below |
| 🎯 Selection highlight | Current selection appears in bold with inverted colors (black-on-white); other options in regular font (white-on-black) |
| 🔄 Two modes | BUTTON_ACTION (14 options) for directional/select settings • SHORT_PWRBTN (16 options) for power button settings
|
| 🎮 Navigation | Up/Down D-pad or side buttons to scroll • Select to confirm • Back to cancel |
| 🏷️ Smart title | Popup title shows the currently selected action's label for context |
| 📤 Result return | Returns selected index via ActivityResult::PageResult::page, stored directly to settings field
|
Settings Using This Selector
longPressUpBehaviorlongPressDownBehaviorfrontLongPressLeftBehaviorfrontLongPressRightBehaviorshortPwrBtnselectLongPressBehavior
🐛 Bug Fixes
- Fixed
LONG_PRESS_CLIPPINGlegacy migration in TXT reader (was mapping to "View Clippings" instead of "Add Clipping")
🛠️ Developer / Web Admin
- All 6 new settings are exposed in the web configuration UI at
http://<device-ip>/settings— just reload the page after updating. - Full i18n support for English and Italian.