How rh-id/a-jarwis works
Jarwis is an Android on-device AI utility. Users choose images and either detect/optionally select faces to blur, or choose neural-style themes; background work processes the images and saves results to the gallery. The app also downloads required models on demand, verifies them, and reports progress to the UI. The graph reflects documented workflows and sampled call sites; some worker, command, and UI implementations were not excerpted, so their documented links are marked unverified where needed.
Main entry points: workmanager Background workers · HomeWorkflow.java Home workflow · ModelDownloader.java Model downloader · FaceEngine.java Face engine
Components 21
App UI and commands
- Home workflow
app/src/main/java/m/co/rh/id/a_jarwis/app/ui/page/HomeWorkflow.java - Face selection
app/src/main/java/m/co/rh/id/a_jarwis/app/ui/page/common/SelectFaceImagePage.java - Theme selection
app/src/main/java/m/co/rh/id/a_jarwis/app/ui/page/common/SelectSTThemePage.java - Face blur command
app/src/main/java/m/co/rh/id/a_jarwis/app/provider/command/BlurFaceCommand.java - Style command
app/src/main/java/m/co/rh/id/a_jarwis/app/provider/command/STApplyCommand.java - Model download dialog
app/src/main/java/m/co/rh/id/a_jarwis/app/ui/page/common/ModelDownloadDialog.java
ML processing
- Face engine
ml-engine/src/main/java/m/co/rh/id/a_jarwis/ml_engine/provider/component/FaceEngine.java - Style engine
ml-engine/src/main/java/m/co/rh/id/a_jarwis/ml_engine/provider/component/STEngine.java - Background workers
ml-engine/src/main/java/m/co/rh/id/a_jarwis/ml_engine/workmanager - OpenCV model runtime
ml-engine/src/main/java/m/co/rh/id/a_jarwis/ml_engine/provider/component/MLEngineInstance.java - Style processor
ml-engine/src/main/java/m/co/rh/id/a_jarwis/ml_engine/provider/component/STProcessor.java
Model management
- Model catalog
ml-engine/src/main/java/m/co/rh/id/a_jarwis/ml_engine/model/ModelCatalog.java - Model definitions
ml-engine/src/main/java/m/co/rh/id/a_jarwis/ml_engine/model/ModelType.java - Download worker
ml-engine/src/main/java/m/co/rh/id/a_jarwis/ml_engine/workmanager/ModelDownloadWorker.java - Model downloader
ml-engine/src/main/java/m/co/rh/id/a_jarwis/ml_engine/provider/component/ModelDownloader.java - Download notifier
ml-engine/src/main/java/m/co/rh/id/a_jarwis/ml_engine/provider/notifier/ModelChangeNotifier.java
Shared services
- File and media helpers
base/src/main/java/m/co/rh/id/a_jarwis/base/provider/component/helper/FileHelper.java - Settings
settings/src/main/java/m/co/rh/id/a_jarwis/settings/provider/component/SettingsSharedPreferences.java
Other components
- User
- Model repositories
- Device gallery
Connections 28
- User → Home workflow: selects images
- Home workflow → Face blur command: invokes
app/src/main/java/m/co/rh/id/a_jarwis/app/ui/page/HomeWorkflow.java - Home workflow → Style command: invokes
app/src/main/java/m/co/rh/id/a_jarwis/app/ui/page/HomeWorkflow.java - Home workflow → Face selection: routes to
- Home workflow → Theme selection: routes to
- Face blur command → Face engine: enqueues blur
app/src/main/java/m/co/rh/id/a_jarwis/app/provider/command/BlurFaceCommand.java - Style command → Style engine: enqueues style
- Face engine → Background workers: enqueues work
ml-engine/src/main/java/m/co/rh/id/a_jarwis/ml_engine/provider/component/FaceEngine.java - Style engine → Background workers: enqueues work
ml-engine/src/main/java/m/co/rh/id/a_jarwis/ml_engine/provider/component/STEngine.java - Background workers → Face engine: runs detection
ml-engine/src/main/java/m/co/rh/id/a_jarwis/ml_engine/provider/component/FaceEngine.java - Background workers → Style engine: runs styles
ml-engine/src/main/java/m/co/rh/id/a_jarwis/ml_engine/provider/component/STEngine.java - Face engine → OpenCV model runtime: uses models
ml-engine/src/main/java/m/co/rh/id/a_jarwis/ml_engine/provider/component/FaceEngine.java - Style engine → OpenCV model runtime: gets processors
ml-engine/src/main/java/m/co/rh/id/a_jarwis/ml_engine/provider/component/STEngine.java - OpenCV model runtime → Style processor: creates
ml-engine/src/main/java/m/co/rh/id/a_jarwis/ml_engine/provider/component/MLEngineInstance.java - OpenCV model runtime → Model catalog: checks availability
ml-engine/src/main/java/m/co/rh/id/a_jarwis/ml_engine/provider/component/MLEngineInstance.java - Model catalog → Model definitions: maps types
ml-engine/src/main/java/m/co/rh/id/a_jarwis/ml_engine/model/ModelCatalog.java - Background workers → File and media helpers: saves results
- Background workers → Device gallery: exports images
- User → Model download dialog: requests feature
- Model download dialog → Download worker: enqueues download
app/src/main/java/m/co/rh/id/a_jarwis/app/ui/page/common/ModelDownloadDialog.java - Download worker → Model downloader: runs download
ml-engine/src/main/java/m/co/rh/id/a_jarwis/ml_engine/workmanager/ModelDownloadWorker.java - Model downloader → Model repositories: downloads models
- Model downloader → Download notifier: emits status
ml-engine/src/main/java/m/co/rh/id/a_jarwis/ml_engine/provider/component/ModelDownloader.java - Download worker → Download notifier: reports failures
ml-engine/src/main/java/m/co/rh/id/a_jarwis/ml_engine/workmanager/ModelDownloadWorker.java - Model download dialog → Download notifier: observes progress
app/src/main/java/m/co/rh/id/a_jarwis/app/ui/page/common/ModelDownloadDialog.java - Model downloader → Model catalog: installs models
ml-engine/src/main/java/m/co/rh/id/a_jarwis/ml_engine/provider/component/ModelDownloader.java - Face blur command → File and media helpers: stages image
app/src/main/java/m/co/rh/id/a_jarwis/app/provider/command/BlurFaceCommand.java - Background workers → Settings: none