How shrimpsejati/yozoramanga works
Yozora Manga is an Android manga reader whose central workflow is selecting a source, finding a title, opening its details and chapters, then reading pages while saving progress locally. The UI also exposes home recommendations and updates, library, history, downloads, and source/account controls. SourceManager selects a MangaSource implementation; the README documents MangaDex, Mangakakalot, and West Manga capabilities. MainActivity initialization and sampled SearchScreen/ReaderScreen code support the depicted wiring; unsampled screen internals are represented only where documented.
Main entry points: YozoraMangaNavHost.kt Navigation Host · SourceManager.kt Source Manager · MainActivity.kt App Startup · LocalStore.kt Local Preferences
Components 25
App and Navigation
- App Startup
app/src/main/java/com/yozora/manga/MainActivity.kt - Navigation Host
app/src/main/java/com/yozora/manga/ui/navigation/YozoraMangaNavHost.kt
Discovery and Reading
- Home
app/src/main/java/com/yozora/manga/ui/screens/HomeScreen.kt - Search
app/src/main/java/com/yozora/manga/ui/screens/SearchScreen.kt - Manga Detail
app/src/main/java/com/yozora/manga/ui/screens/DetailScreen.kt - Chapter Reader
app/src/main/java/com/yozora/manga/ui/screens/ReaderScreen.kt - Library
app/src/main/java/com/yozora/manga/ui/screens/LibraryScreen.kt - Reading History
app/src/main/java/com/yozora/manga/ui/screens/HistoryScreen.kt - Downloads
app/src/main/java/com/yozora/manga/ui/screens/DownloadsScreen.kt - Account
app/src/main/java/com/yozora/manga/ui/screens/AccountScreen.kt
Manga Sources
- Source Manager
app/src/main/java/com/yozora/manga/data/SourceManager.kt - Source Contract
app/src/main/java/com/yozora/manga/data/MangaSource.kt - MangaDex
app/src/main/java/com/yozora/manga/data/MangaDexSource.kt - Mangakakalot
app/src/main/java/com/yozora/manga/data/MangakakalotSource.kt - West Manga
app/src/main/java/com/yozora/manga/data/WestMangaSource.kt
Local State
- Local Preferences
app/src/main/java/com/yozora/manga/data/LocalStore.kt - Manga Models
app/src/main/java/com/yozora/manga/data/Models.kt
Network Support
- Image Loading
app/src/main/java/com/yozora/manga/data/CronetImageFetcher.kt - Challenge State
app/src/main/java/com/yozora/manga/data/CloudflareChallengeState.kt - Challenge WebView
app/src/main/java/com/yozora/manga/data/CloudflareWebView.kt - Challenge Dialog
app/src/main/java/com/yozora/manga/ui/components/CloudflareChallengeDialog.kt - Mangakakalot Images
app/src/main/java/com/yozora/manga/data/MangakakalotImageFetcher.kt - West Manga Images
app/src/main/java/com/yozora/manga/data/WestMangaImageFetcher.kt
Other components
- Reader
- Manga Services
Connections 47
- Reader → App Startup: opens app
- App Startup → Navigation Host: sets content
- Navigation Host → Home: routes
- Navigation Host → Search: routes
- Navigation Host → Manga Detail: routes
- Navigation Host → Chapter Reader: routes
- Navigation Host → Library: routes
- Navigation Host → Reading History: routes
- Navigation Host → Downloads: routes
- Navigation Host → Account: routes
- App Startup → Source Manager: initializes
- App Startup → Local Preferences: creates
- Source Manager → Local Preferences: loads selection
- Source Manager → Local Preferences: persists selection
- Account → Source Manager: selects source
- Home → Source Manager: requests manga
- Search → Source Manager: searches active source
- Manga Detail → Source Manager: loads title
- Chapter Reader → Source Manager: loads chapters and pages
- Home → Local Preferences: reads saved progress
- Search → Local Preferences: reads and saves history
- Search → Local Preferences: updates bookmarks
- Chapter Reader → Local Preferences: saves progress and settings
- Library → Local Preferences: reads bookmarks
- Reading History → Local Preferences: reads history
- Source Manager → Source Contract: selects implementation
- Source Contract → MangaDex: implemented by
- Source Contract → Mangakakalot: implemented by
- Source Contract → West Manga: implemented by
- MangaDex → Manga Services: calls API
- Mangakakalot → Manga Services: fetches and scrapes
- West Manga → Manga Services: calls source services
- MangaDex → Manga Models: produces
- Mangakakalot → Manga Models: produces
- West Manga → Manga Models: produces
- App Startup → Image Loading: registers fetcher
- App Startup → Mangakakalot Images: registers fetcher
- App Startup → West Manga Images: registers fetcher
- Mangakakalot Images → Manga Services: fetches images
- West Manga Images → Manga Services: fetches images
- Image Loading → Manga Services: fetches images
- Mangakakalot → Challenge WebView: requests rendered HTML
- Challenge WebView → Challenge State: signals challenge
- Challenge State → Challenge Dialog: notifies pending challenge
- App Startup → Challenge Dialog: displays dialog
- Challenge Dialog → Challenge State: resolves or cancels
- Challenge Dialog → Manga Services: opens challenge page