Dave Allie
ee63cf4f18
Rename Screens to Activities and restructure files ( #44 )
...
## Summary
* This PR drastically reshapes the structure of the codebase, moving
from the concept of "Screens" to "Activities", restructing the files and
setting up the concept of subactivities.
* This should help with keep the main file clean and containing all
functional logic in the relevant activity.
* CrossPointState is now also a global singleton which should help with
accessing it from within activities.
## Additional Context
* This is probably going to be a bit disruptive for people with open
PRs, sorry 😞
2025-12-17 23:32:18 +11:00
Jonas Diemer
d22f9e2a83
Calculate the progress in the book by file sizes of each chapter. ( #38 )
...
## Summary
Addresses #35 .
Maybe it could be wise to do some caching of the spine sizes (but
performance isn't too bad).
2025-12-17 23:05:24 +11:00
Dave Allie
e0fc43cf13
Add home screen ( #42 )
...
## Summary
* Add home screen
* Sits as new root screen, allows for navigation to settings or file
list
2025-12-17 20:47:43 +11:00
Dave Allie
eec3766bcf
Use single buffer mode for EInkDisplay ( #34 )
...
## Summary
* Frees up 48kB of statically allocated RAM in exchange for 48kB just
when grayscale rendering is needed
## Additional Context
* Upstream changes:
https://github.com/open-x4-epaper/community-sdk/pull/7
2025-12-17 00:17:49 +11:00
Jonas Diemer
bf4a8da0e6
Wrap-around navigation in Settings. ( #31 )
2025-12-16 22:54:16 +11:00
Arthur Tazhitdinov
fabea7ad41
Add Cyrillic range to fonts ( #27 )
...
* Enhance TOC parsing and chapter selection logic
- Update .gitignore to include additional paths
- Refactor Epub::parseContentOpf to improve NCX item retrieval
- Modify ContentOpfParser to store media type in ManifestItem
- Implement rebuildVisibleSpineIndices in EpubReaderChapterSelectionScreen for better chapter navigation
- Adjust rendering logic to handle empty chapter lists gracefully
* Refactor TOC parsing logic to streamline cover image and NCX item retrieval
* add cyrillic ranges
* revert
* clang format fix
2025-12-16 22:52:49 +11:00
Jonas Diemer
fc2d526e40
Feature/auto poweroff ( #32 )
...
* Automatically deep sleep after 10 minutes of inactivity.
* formatting.
2025-12-16 22:49:31 +11:00
Dave Allie
5f150d3024
Fixed light gray text rendering
2025-12-16 02:16:38 +11:00
Dave Allie
3303541e15
Fix formatting
2025-12-15 23:17:23 +11:00
Jonas Diemer
a10d903a9f
Settings Screen and first 2 settings ( #18 )
...
* white sleep screen
* quicker pwr button
* no extra spacing between paragraphs
* Added settings class with de/serialization and whiteSleepScreen setting to control inverting the sleep screen
* Added Settings screen for real, made settings a global singleton
* Added setting for extra paragraph spacing.
* fixed typo
* Rework after feedback
* Fixed type from bool to uint8
2025-12-15 23:16:46 +11:00
Dave Allie
c90f3d8304
Add chapter selection screen
2025-12-13 21:17:34 +11:00
Dave Allie
8175069ea7
Return -1 from getTocIndexForSpineIndex if TOC item does not exist
2025-12-13 21:17:22 +11:00
Dave Allie
7eea0eeccb
Show end of book screen when navigating past last page
2025-12-13 20:10:38 +11:00
Dave Allie
fe831c615c
Remove tinyxml2 dependency replace with expat parsers ( #9 )
2025-12-13 19:36:01 +11:00
Dave Allie
33e1499175
Show clearer indexing string
2025-12-13 16:02:27 +11:00
Dave Allie
11857183cc
Bump page file version
2025-12-13 00:42:17 +11:00
Dave Allie
779f3b07e2
Swap out babyblue font for pixelarial14
2025-12-13 00:16:10 +11:00
Dave Allie
f74c0d23a9
Move to smart pointers and split out ParsedText class ( #6 )
...
* Move to smart pointers and split out ParsedText class
* Cleanup ParsedText
* Fix clearCache functions and clear section cache if page load fails
* Bump Page and Section file versions
* Combine removeDir implementations in Epub
* Adjust screen margins
2025-12-12 22:13:34 +11:00
Dave Allie
61c50be7db
Add version string to boot screen
2025-12-08 23:13:33 +11:00
Dave Allie
a98a2808b8
Add drawCenteredText to GfxRenderer
2025-12-08 22:52:19 +11:00
Dave Allie
797ddaab86
Cleanup serial output
2025-12-08 22:39:23 +11:00
Dave Allie
0800e8a845
Remove EpdRenderer and create new GfxRenderer
2025-12-08 22:06:09 +11:00
Dave Allie
c239cbbd89
Move to SDK EInkDisplay and enable anti-aliased 2-bit text ( #5 )
...
* First pass at moving to SDK EInkDisplay library
* Add 2-bit grayscale text and anti-aliased rendering of text
* Render status bar for empty chapters
* Refresh screen every 15 pages to avoid ghosting
* Simplify boot and sleep screens
* Give FileSelectionScreen task more stack memory
* Move text around slightly on Boot and Sleep screens
* Re-use existing buffer and write to whole screen for 'partial update'
2025-12-08 19:48:49 +11:00
Dave Allie
d2d39427af
Stream inflated EPUB HTMLs down to disk instead of inflating in memory ( #4 )
...
* Downgrade miniz for stability
* Stream HTML from ZIP down to disk instead of loading all in mem
2025-12-08 00:39:17 +11:00
Dave Allie
e922758913
Sort directories first in file picker
2025-12-07 19:17:43 +11:00
Dave Allie
6b3fbed01b
Reduce number of full screen refreshes to once every 20 pages
2025-12-06 22:12:01 +11:00
Dave Allie
5a23d72724
Version section bin files
2025-12-06 22:09:25 +11:00
Dave Allie
6fe291f96c
Small cleanup
2025-12-06 20:24:24 +11:00
Dave Allie
1cbee2cb92
More pass by reference changes
2025-12-06 15:56:00 +11:00
Dave Allie
4c13528cfc
Sort items on FileSelectionScreen
2025-12-06 13:01:16 +11:00
Dave Allie
b89609691b
Fix bug with selectin epubs inside of folders
2025-12-06 12:57:17 +11:00
Dave Allie
00fd1a033a
Use reference passing for EpdRenderer
2025-12-06 12:56:39 +11:00
Dave Allie
283051d77f
Use InputManager from community-sdk
2025-12-06 12:35:41 +11:00
Dave Allie
9d3eaf4388
Update sleep screen
2025-12-06 04:20:41 +11:00
Dave Allie
20cff1745f
Avoid leaving screens mid-display update
...
Was leave the EPD in a bad state, blocking further actions
2025-12-06 03:02:52 +11:00
Dave Allie
24d01a2970
Fix memory leak with Epub object getting orphaned
2025-12-06 02:49:10 +11:00
Dave Allie
58cd36d51e
Add UI font
2025-12-06 01:44:14 +11:00
Dave Allie
aed915713b
Add new boot logo screen
2025-12-06 01:44:14 +11:00
Dave Allie
d2bba3bac7
Wrap up multiple font styles into EpdFontFamily
2025-12-06 01:44:14 +11:00
Dave Allie
d6d7385b52
Full screen refresh of EpubReaderScreen every 10 renders
...
This is done in an effort to minimise ghosting
2025-12-05 22:19:44 +11:00
Dave Allie
981bdd5a06
Add directory picking to home screen
2025-12-05 22:12:28 +11:00
Dave Allie
b5970a27e3
Show indexing text when indexing
2025-12-05 21:12:15 +11:00
Dave Allie
bae4fc6a04
Avoid ghosting on sleep screen by doing a full screen update
2025-12-05 17:55:17 +11:00
Dave Allie
82aad6d94a
Speedup boot by not waiting for Serial
2025-12-05 17:47:23 +11:00
Dave Allie
e9b3a9c59a
Fix hold to wake logic
...
esp_sleep_get_wakeup_cause does not seem to be set when not connected to USB power
2025-12-04 00:57:32 +11:00
Dave Allie
87df778b06
Support left and right buttons in reader and file picker
2025-12-04 00:11:51 +11:00
Dave Allie
1df9812df6
Adjust input button thresholds to support more devices
2025-12-04 00:11:51 +11:00
Dave Allie
35284ac4b6
Add file selection screen
2025-12-04 00:11:51 +11:00
Dave Allie
27d34e782b
Use correct current page on reader screen
...
Fixes the page counter not updating
2025-12-03 22:34:16 +11:00
Dave Allie
9f5253313f
Public release
2025-12-03 22:06:45 +11:00