title: “Feed Module System & Lifecycle” description: “How RPDev Feed loads modules dynamically, validates signatures, and manages lifecycle.”
Feed Module System & Lifecycle
RPDev Feed separates the feed presentation container from informational content using a modular plugin architecture.
1. HubPluginRegistry
The core coordinator is HubPluginRegistry.kt:
- Scans installed APK packages advertising the module intent:
iamrp.dev.feed.MODULE. - Loads dynamic module definitions and instantiates card generators.
- Manages background refresh intervals to avoid battery drain.
- Dispatches user actions (clicks, button taps) back to host modules.
2. HubModuleManager & Catalog Sync
HubModuleManager.kt synchronizes available modules against the sovereign catalog:
- Queries primary catalog endpoint:
https://repo.launcher.iamrp.dev/catalog/modules.json. - Fallback secondary CDN endpoint:
https://cdn.iamrp.dev/feed/modules.json. - Fallback tertiary Git mirror:
https://raw.githubusercontent.com/RPDevs-Builds/RPDev-Feed-Modules/main/catalog/modules.json. - Caches catalog responses locally in SharedPreferences to ensure instant offline launching.
Users can enable, disable, configure, or uninstall modules directly from the Feed Settings menu.