Chapter selection previously only used the spine index, causing navigation to always land on page 0 of the spine item. Sub-chapters that share a spine file but differ by anchor (e.g. `chapter.xhtml#sec2`) were silently ignored. Now the TOC anchor is passed through `ChapterResult` and applied via the existing `pendingAnchor` mechanism. ## Summary * This PR implements navigation to sub-chapters which didn't work correctly previously. If a sub-chapter of the current top-level chapter was selected, nothing happened. If a sub-chapter of another top-level chapter was selected, reader switched to the beginning of the top-level chapter. * In addition, chapters now always start from a new page. This fixes anchor to page calculation for the cases when the actual chapter content doesn't fit on the page where the corresponding ToC anchor was found. ## Additional Context * I might misuse `pendingAnchor` here which was previously used for footnote navigation, please double check. I'm open to suggestions for improvements. * Note that the chapter selected by default when `EpubReaderChapterSelectionActivity` opens is still wrong. I'm going to fix this separately. This PR addresses only navigation to the selected chapter. * I tested this PR on my X4 and verified that navigation to a different sub-chapter works correctly, both inside and outside the current spine. * Some of the changes were borrowed from https://github.com/crosspoint-reader/crosspoint-reader/pull/1455 --- ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**PARTIALLY**_ --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This directory is intended for project specific (private) libraries.
PlatformIO will compile them to static libraries and link into the executable file.
The source code of each library should be placed in a separate directory
("lib/your_library_name/[Code]").
For example, see the structure of the following example libraries `Foo` and `Bar`:
|--lib
| |
| |--Bar
| | |--docs
| | |--examples
| | |--src
| | |- Bar.c
| | |- Bar.h
| | |- library.json (optional. for custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html
| |
| |--Foo
| | |- Foo.c
| | |- Foo.h
| |
| |- README --> THIS FILE
|
|- platformio.ini
|--src
|- main.c
Example contents of `src/main.c` using Foo and Bar:
```
#include <Foo.h>
#include <Bar.h>
int main (void)
{
...
}
```
The PlatformIO Library Dependency Finder will find automatically dependent
libraries by scanning project source files.
More information about PlatformIO Library Dependency Finder
- https://docs.platformio.org/page/librarymanager/ldf.html