How sawadikap-nextgen/pwde_repository works
PWDe is an Android accessibility app for controlling games with head movement, gestures, and voice, alongside setup, calibration, profiles, and cloud sync. The main play path is user navigation into a game, a foreground play session that combines input and sensor engines, and Android accessibility gestures delivered to the game. The tree also includes a HUD-calibration backend. Source excerpts and index support the principal links; several UI and GabAI relationships are represented as subsystems without speculative call edges.
Main entry points: LiveGameSession.kt Live game session · CloudSyncEngine.kt Cloud sync engine · PwdeNavHost.kt App navigation · PwdeAccessibilityService.kt Accessibility gestures
Components 25
App and setup
- Main activity
Android-App/app/src/main/java/com/pwde/app/MainActivity.kt - App navigation
Android-App/app/src/main/java/com/pwde/app/ui/navigation/PwdeNavHost.kt - Account and setup
Android-App/app/src/main/java/com/pwde/app/ui/onboarding - Gameplay screens
Android-App/app/src/main/java/com/pwde/app/ui/gameplay
Live game control
- Play service
Android-App/app/src/main/java/com/pwde/app/play/PlayService.kt - Live game session
Android-App/app/src/main/java/com/pwde/app/play/LiveGameSession.kt - Game input
Android-App/app/src/main/java/com/pwde/app/play/GameInput.kt - Accessibility gestures
Android-App/app/src/main/java/com/pwde/app/accessibility/PwdeAccessibilityService.kt - Face tracking
Android-App/app/src/main/java/com/pwde/app/sensors/face/FaceTrackingManager.kt - Pose and gestures
Android-App/app/src/main/java/com/pwde/app/sensors/face/FaceState.kt - In-game voice
Android-App/app/src/main/java/com/pwde/app/sensors/voice/InGameVoiceEngine.kt - Sherpa wake spotting
Android-App/app/src/main/java/com/pwde/app/sensors/voice/SherpaWakeWordEngine.kt - Keyword spotter
Android-App/app/src/main/java/com/k2fsa/sherpa/onnx/KeywordSpotter.kt
Configuration and sync
- Control settings
Android-App/app/src/main/java/com/pwde/app/data/local/ControlsRepository.kt - Game profiles
Android-App/app/src/main/java/com/pwde/app/data/local/ProfileRepository.kt - User settings
Android-App/app/src/main/java/com/pwde/app/data/prefs/SettingsRepository.kt - Cloud sync engine
Android-App/app/src/main/java/com/pwde/app/data/remote/CloudSyncEngine.kt - Cloud store
Android-App/app/src/main/java/com/pwde/app/data/remote/CloudStore.kt - Account authentication
Android-App/app/src/main/java/com/pwde/app/data/remote/AuthRepository.kt
Guided calibration
- GabAI calibration
Android-App/app/src/main/java/com/pwde/app/data/gabai/GabAiRepository.kt - GabAI screens
Android-App/app/src/main/java/com/pwde/app/ui/gabai
HUD calibration service
- HUD detector API
calibration-backend/app/main.py - YOLO detector
calibration-backend/app/detection.py - Game HUD models
calibration-backend/app/constants.py
Other components
- Player
Connections 26
- Player → Main activity: opens app
Android-App/app/src/main/java/com/pwde/app/MainActivity.kt - Main activity → App navigation: shows
Android-App/app/src/main/java/com/pwde/app/MainActivity.kt - App navigation → Account and setup: routes to
- App navigation → Gameplay screens: routes to
- Gameplay screens → Play service: starts play
- Play service → Live game session: runs session
Android-App/app/src/main/java/com/pwde/app/play/PlayService.kt - Live game session → Control settings: loads controls
Android-App/app/src/main/java/com/pwde/app/play/LiveGameSession.kt - Live game session → Game profiles: loads profiles
Android-App/app/src/main/java/com/pwde/app/play/LiveGameSession.kt - Live game session → User settings: reads settings
Android-App/app/src/main/java/com/pwde/app/play/LiveGameSession.kt - Live game session → Face tracking: starts tracking
Android-App/app/src/main/java/com/pwde/app/play/LiveGameSession.kt - Live game session → In-game voice: starts voice
Android-App/app/src/main/java/com/pwde/app/play/LiveGameSession.kt - Live game session → Game input: uses input
Android-App/app/src/main/java/com/pwde/app/play/LiveGameSession.kt - Face tracking → Pose and gestures: updates state
Android-App/app/src/main/java/com/pwde/app/sensors/face/FaceTrackingManager.kt - In-game voice → Control settings: reads commands
Android-App/app/src/main/java/com/pwde/app/sensors/voice/InGameVoiceEngine.kt - Sherpa wake spotting → Keyword spotter: runs spotting
Android-App/app/src/main/java/com/pwde/app/sensors/voice/SherpaWakeWordEngine.kt - Accessibility gestures → Game input: reads input
Android-App/app/src/main/java/com/pwde/app/accessibility/PwdeAccessibilityService.kt - Accessibility gestures → Face tracking: uses tracking
Android-App/app/src/main/java/com/pwde/app/accessibility/PwdeAccessibilityService.kt - Player → Accessibility gestures: controls screen
- Cloud sync engine → Game profiles: syncs profiles
Android-App/app/src/main/java/com/pwde/app/data/remote/CloudSyncEngine.kt - Cloud sync engine → Control settings: syncs controls
Android-App/app/src/main/java/com/pwde/app/data/remote/CloudSyncEngine.kt - Cloud sync engine → User settings: syncs settings
Android-App/app/src/main/java/com/pwde/app/data/remote/CloudSyncEngine.kt - Cloud sync engine → Cloud store: reads and writes
Android-App/app/src/main/java/com/pwde/app/data/remote/CloudSyncEngine.kt - Player → GabAI screens: configures calibration
- GabAI screens → GabAI calibration: uses repository
- HUD detector API → YOLO detector: runs detection
calibration-backend/app/main.py - HUD detector API → Game HUD models: loads game config
calibration-backend/app/main.py