How air5005/pagenest works
YiNest is an Android reading app whose central workflow is importing books into a personal library, opening them in the reader, and retaining progress and reading annotations. Its other major user-facing branches are online discovery and download, plus speech playback through system or Azure engines. The graph combines README-documented capabilities with the supplied source excerpts; several UI-to-repository and discovery-to-import connections are documented at product level, while unsampled implementation details are not expanded into speculative call chains.
Main entry points: MainReadScreen.kt Reader · SpeechEngineRouter.kt Engine routing · HomeScreen.kt Library and shelves · DiscoveryScreen.kt Discovery and details
Components 28
Library and reading
- Reader
app/src/main/java/com/wxn/reader/presentation/mainReader/MainReadScreen.kt - Page controller
app/src/main/java/com/wxn/reader/presentation/mainReader/PageViewController.kt - Book details
app/src/main/java/com/wxn/reader/presentation/bookDetails/bookDetailsScreen.kt - Library and shelves
app/src/main/java/com/wxn/reader/presentation/home/HomeScreen.kt - Book import
app/src/main/java/com/air5005/pagenest/library/importing/BookImportService.kt - Private book files
app/src/main/java/com/air5005/pagenest/library/importing/PrivateBookStore.kt - Library data
app/src/main/java/com/wxn/reader/data/source/local/AppDatabase.kt - Reading progress
app/src/main/java/com/wxn/reader/domain/use_case/reading_progress/SetReadingProgressUseCase.kt
Online discovery
- Discovery and details
app/src/main/java/com/air5005/pagenest/discovery/ui/DiscoveryScreen.kt - Catalog repository
app/src/main/java/com/air5005/pagenest/discovery/repository/DiscoveryCatalogRepository.kt - Catalog sources
app/src/main/java/com/air5005/pagenest/discovery/source/OnlineCatalogSource.kt - Metadata enrichment
app/src/main/java/com/air5005/pagenest/discovery/openlibrary/OpenLibraryEnricher.kt - Secure downloader
app/src/main/java/com/air5005/pagenest/discovery/download/SecureBookDownloader.kt - Download import
app/src/main/java/com/air5005/pagenest/discovery/importing/OnlineBookImportCoordinator.kt
Speech reading
- Speech controls
app/src/main/java/com/air5005/pagenest/speech/ui/SpeechControlSheet.kt - Speech settings
app/src/main/java/com/air5005/pagenest/speech/settings/ReaderSpeechManager.kt - Content segmentation
app/src/main/java/com/air5005/pagenest/speech/content/SpeechContentSource.kt - Engine routing
app/src/main/java/com/air5005/pagenest/speech/engine/SpeechEngineRouter.kt - System TTS
app/src/main/java/com/air5005/pagenest/speech/engine/SystemTtsEngine.kt - Azure speech
app/src/main/java/com/air5005/pagenest/speech/engine/AzureSpeechEngine.kt - Playback service
app/src/main/java/com/air5005/pagenest/speech/playback/SpeechPlaybackService.kt - Speech session
app/src/main/java/com/air5005/pagenest/speech/playback/SpeechController.kt
App experience
- Diagnostics
app/src/main/java/com/air5005/pagenest/diagnostics/DiagnosticsScreen.kt - Appearance settings
app/src/main/java/com/air5005/pagenest/skin/SkinService.kt - App navigation
app/src/main/java/com/wxn/reader/navigation/SetupNavGraph.kt
Other components
- Reader
- Online catalogs
- Azure service
Connections 32
- Reader → App navigation: opens app
- App navigation → Library and shelves: navigates
- Library and shelves → Book import: imports books
- Book import → Private book files: stores privately
- Book import → Library data: records book
- Library and shelves → Library data: loads library
- Library and shelves → Reader: opens book
- Reader → Page controller: loads pages
- Reader → Reading progress: saves progress
- Reader → Library data: reads annotations
- Reader → Book details: opens details
- Reader → Discovery and details: searches books
- Discovery and details → Catalog repository: requests catalog
- Catalog repository → Catalog sources: queries sources
- Catalog sources → Online catalogs: fetches listings
- Catalog repository → Metadata enrichment: enriches metadata
- Discovery and details → Secure downloader: downloads selection
- Secure downloader → Online catalogs: fetches file
- Discovery and details → Download import: imports download
- Download import → Book import: delegates import
- Reader → Speech controls: starts speech
- Speech controls → Speech settings: applies preferences
- Speech settings → Engine routing: routes requests
- Engine routing → Content segmentation: uses segments
- Engine routing → System TTS: speaks offline
- Engine routing → Azure speech: speaks online
- Azure speech → Azure service: requests synthesis
- Engine routing → Speech session: provides audio
- Playback service → Speech session: controls session
- Page controller → Content segmentation: loads speech pages
- App navigation → Diagnostics: opens diagnostics
- App navigation → Appearance settings: opens appearance