How fengbyx/pawchive works
Pawchive is a modular Android client for browsing and managing creator content aggregated by the Pawchive platform. The main user journey runs from the app’s tabbed interface into feed, search, creator, and post views; users can then save content for offline reading or enqueue media downloads. Separate branches cover account and subscription management, background notifications and updates, and preferences/backup. The README documents these capabilities and the module dependency direction; sampled source confirms selected download, session, settings, and player behavior, but not every feature-to-repository call.
Main entry points: DownloadCenter.kt Download execution · MainActivity.kt Main app · PawchiveApi.kt Platform API · SearchFragment.kt Search UI
Components 28
App and features
- Main app
app/src/main/java/com/pawchive/ui/MainActivity.kt - Home feed
feature-home/src/main/java/com/pawchive/ui/home/HomeFragment.kt - Search UI
feature-search/src/main/java/com/pawchive/ui/search/SearchFragment.kt - Post details
feature-post/src/main/java/com/pawchive/ui/post/PostDetailFragment.kt - Account and creator
feature-account/src/main/java/com/pawchive/ui/account/AccountFragment.kt - Settings
feature-settings/src/main/java/com/pawchive/ui/settings/SettingsFragment.kt - Download center UI
feature-downloads/src/main/java/com/pawchive/ui/downloads/DownloadsFragment.kt
Content access
- Platform API
core/src/main/java/com/pawchive/core/api/PawchiveApi.kt - Challenge clearance
core/src/main/java/com/pawchive/core/api/CloudflareManager.kt - Offline search
core/src/main/java/com/pawchive/core/db/OfflineArchiveFts.kt
Saved library
- Offline archive
data/src/main/java/com/pawchive/data/repository/OfflineArchiveRepository.kt - Bookmarks
data/src/main/java/com/pawchive/data/repository/BookmarkManager.kt - Account sessions
core/src/main/java/com/pawchive/core/store/SessionManager.kt - Creator subscriptions
data/src/main/java/com/pawchive/data/repository/CreatorSubscriptionRepository.kt
Background operations
- Download rules
data/src/main/java/com/pawchive/data/repository/DownloadRuleEngine.kt - Download enqueue
data/src/main/java/com/pawchive/data/repository/DownloadEnqueuer.kt - Download execution
data/src/main/java/com/pawchive/data/repository/DownloadCenter.kt - HTTP transfer
data/src/main/java/com/pawchive/data/repository/HttpDownloadManager.kt - Download notifications
data/src/main/java/com/pawchive/data/download/DownloadNotificationController.kt - Foreground service
data/src/main/java/com/pawchive/data/download/DownloadNotificationService.kt - Scheduled work
data/src/main/java/com/pawchive/work/ContentUpdateWorker.kt - Release checker
data/src/main/java/com/pawchive/data/github/UpdateChecker.kt
Core platform
- Preferences
core/src/main/java/com/pawchive/core/store/SettingsManager.kt - Room database
core/src/main/java/com/pawchive/core/db/PawchiveDatabase.kt
Other components
- App user
- Pawchive platform
- GitHub releases
- Android system
Connections 32
- App user → Main app: opens
- Main app → Home feed: shows tab
- Main app → Search UI: shows tab
- Main app → Download center UI: shows tab
- App user → Post details: opens content
- App user → Account and creator: manages account
- App user → Settings: configures
- Home feed → Platform API: loads feed
- Search UI → Platform API: searches online
- Platform API → Pawchive platform: requests content
- Platform API → Challenge clearance: obtains clearance
- Search UI → Offline search: searches archive
- Post details → Bookmarks: saves content
- Bookmarks → Offline archive: indexes saved posts
- Offline archive → Room database: stores archive
- Offline search → Room database: queries index
- Account and creator → Account sessions: manages sessions
- Settings → Creator subscriptions: manages subscriptions
- Creator subscriptions → Room database: persists subscriptions
- Post details → Download rules: applies rules
- Download rules → Download enqueue: enqueues matches
- Download enqueue → Download execution: adds tasks
- Download execution → HTTP transfer: transfers files
- HTTP transfer → Android system: writes files
- Download execution → Download notifications: updates progress
- Download notifications → Foreground service: starts service
- Foreground service → Download execution: forwards actions
- Download center UI → Download execution: manages tasks
- Scheduled work → Creator subscriptions: checks creators
- Scheduled work → Android system: schedules work
- Release checker → GitHub releases: checks releases
- Settings → Preferences: reads and writes