Commit Graph

65 Commits

Author SHA1 Message Date
Brendan O'Leary
5d935e6719 Restore the wifi screen 2025-12-17 18:47:27 -05:00
Brendan O'Leary
08227a07fa Merge master 2025-12-17 18:44:05 -05:00
Dave Allie
d429966dd4
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
c78f2a9840
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
11f01d3a41
Add home screen (#42)
Some checks are pending
CI / build (push) Waiting to run
## 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
Brendan O'Leary
05da79f6ad clang format 2025-12-16 21:42:36 -05:00
Brendan O'Leary
e9e6982eea RCU for fix with merge 2025-12-16 21:37:17 -05:00
Brendan O'Leary
fcee7d519c Merge main 2025-12-16 21:32:39 -05:00
Brendan O'Leary
9c68d80781 Fix issue with uploading to subfolders 2025-12-16 21:20:45 -05:00
Brendan O'Leary
2c79ea8705 Add delete key 2025-12-16 20:56:33 -05:00
Brendan O'Leary
78604d3bda Page design update 2025-12-16 20:49:24 -05:00
Brendan O'Leary
225268c09c Put some basic XSS protection in place 2025-12-16 20:32:52 -05:00
Brendan O'Leary
e384bdbfc2 Hide hidden folders 2025-12-16 20:18:08 -05:00
Brendan O'Leary
1bc30fbf2a Fix issue with failed connections 2025-12-16 20:18:08 -05:00
Dave Allie
c287aa03a4
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
9ad8111ce7
Wrap-around navigation in Settings. (#31) 2025-12-16 22:54:16 +11:00
Arthur Tazhitdinov
57d1939be7
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
012992f904
Feature/auto poweroff (#32)
* Automatically deep sleep after 10 minutes of inactivity.

* formatting.
2025-12-16 22:49:31 +11:00
Brendan O'Leary
698ca629b8 Add option to store wifi credentials 2025-12-15 22:02:03 -05:00
Brendan O'Leary
d4299efaed KIll webserver when exiting 2025-12-15 21:43:01 -05:00
Brendan O'Leary
e4f7327719 Add basic webserver 2025-12-15 21:23:21 -05:00
Brendan O'Leary
f365ba6ff0 Connection to WiFi established 2025-12-15 20:56:09 -05:00
Dave Allie
449b3ca161
Fixed light gray text rendering 2025-12-16 02:16:38 +11:00
Dave Allie
108cf57202
Fix formatting 2025-12-15 23:17:23 +11:00
Jonas Diemer
a640fbecf8
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
8994953254
Add chapter selection screen 2025-12-13 21:17:34 +11:00
Dave Allie
ead39fd04b
Return -1 from getTocIndexForSpineIndex if TOC item does not exist 2025-12-13 21:17:22 +11:00
Dave Allie
f69fc90b5c
Show end of book screen when navigating past last page 2025-12-13 20:10:38 +11:00
Dave Allie
c7a32fe41f
Remove tinyxml2 dependency replace with expat parsers (#9) 2025-12-13 19:36:01 +11:00
Dave Allie
6ddcf9b592
Show clearer indexing string 2025-12-13 16:02:27 +11:00
Dave Allie
492c6fd23e
Bump page file version 2025-12-13 00:42:17 +11:00
Dave Allie
7c852cf7d1
Swap out babyblue font for pixelarial14 2025-12-13 00:16:10 +11:00
Dave Allie
69f357998e
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
0926e9e6e4
Add version string to boot screen 2025-12-08 23:13:33 +11:00
Dave Allie
02b157c02b
Add drawCenteredText to GfxRenderer 2025-12-08 22:52:19 +11:00
Dave Allie
07cc589e59
Cleanup serial output 2025-12-08 22:39:23 +11:00
Dave Allie
b743a1ca8e
Remove EpdRenderer and create new GfxRenderer 2025-12-08 22:06:09 +11:00
Dave Allie
2ed8017aa2
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
de453fed1d
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
c715c18bf7
Sort directories first in file picker 2025-12-07 19:17:43 +11:00
Dave Allie
eceffaa289
Reduce number of full screen refreshes to once every 20 pages 2025-12-06 22:12:01 +11:00
Dave Allie
bb151caee7
Version section bin files 2025-12-06 22:09:25 +11:00
Dave Allie
ad8cee12ab
Small cleanup 2025-12-06 20:24:24 +11:00
Dave Allie
4ecfdea1a1
More pass by reference changes 2025-12-06 15:56:00 +11:00
Dave Allie
021f77eab3
Sort items on FileSelectionScreen 2025-12-06 13:01:16 +11:00
Dave Allie
6d3d25a288
Fix bug with selectin epubs inside of folders 2025-12-06 12:57:17 +11:00
Dave Allie
9a33030623
Use reference passing for EpdRenderer 2025-12-06 12:56:39 +11:00
Dave Allie
6414f85257
Use InputManager from community-sdk 2025-12-06 12:35:41 +11:00
Dave Allie
8679c8f57c
Update sleep screen 2025-12-06 04:20:41 +11:00
Dave Allie
899caab70c
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