How dhananjaybhosale/hilight-studio works
HiLight Studio is an Android app for controlling Pixel 11 Pro-family eight-LED arrays. The main flow is user configuration in the Live, Style, Apps, and Setup screens, persisted and reconciled by Store, sent through the selected privileged transport, then interpreted by the renderer engine and written to Android’s lights service. Separate rule and suppression stages cover foreground apps, notifications, privacy activity, face-down conditions, schedules, and battery/DND limits. README capabilities are included where the tree identifies their implementation; unsampled wiring is not asserted.
Main entry points: Store.kt State coordinator · Engine.java State engine · MainActivity.kt Main activity · Backends.kt Transport selection
Components 25
App interface
- Main activity
app/src/main/java/com/hilight/studio/MainActivity.kt - Live controls
app/src/main/java/com/hilight/studio/LiveScreen.kt - Style controls
app/src/main/java/com/hilight/studio/AmbientScreen.kt - App rules
app/src/main/java/com/hilight/studio/AppRulesScreen.kt - Access setup
app/src/main/java/com/hilight/studio/SetupScreen.kt - Update checker
app/src/main/java/com/hilight/studio/GitHubUpdateChecker.kt
Rules and policy
- State coordinator
app/src/main/java/com/hilight/studio/Store.kt - Rule model
app/src/main/java/com/hilight/studio/Model.kt - Foreground tracking
app/src/main/java/com/hilight/studio/ForegroundWatcher.kt - Notification rules
app/src/main/java/com/hilight/studio/NotificationTrigger.kt - Privacy activity
core/src/com/hilight/core/AppOpsWatcher.java - Output guards
app/src/main/java/com/hilight/studio/Guards.kt
Privileged access
- State bridge
app/src/main/java/com/hilight/studio/Bridge.kt - Transport selection
app/src/main/java/com/hilight/studio/Backends.kt - Root transport
app/src/main/java/com/hilight/studio/RootBackend.kt - ADB helper
core/src/com/hilight/core/AdbHelper.java - Shizuku service
app/src/main/java/com/hilight/studio/HiLightUserService.java
LED runtime
- State engine
core/src/com/hilight/core/Engine.java - Pattern renderer
core/src/com/hilight/core/Renderer.java - Privacy scheduler
core/src/com/hilight/core/PrivacyScheduler.java - Lights backend
core/src/com/hilight/core/LightsBackend.java
Other components
- User
- Android lights service
- Android system
- GitHub releases
Connections 31
- User → Main activity: opens
- Main activity → Live controls: shows
- Main activity → Style controls: shows
- Main activity → App rules: shows
- Main activity → Access setup: shows
- Live controls → State coordinator: updates state
- Style controls → State coordinator: updates style
- App rules → State coordinator: edits rules
- Access setup → State coordinator: configures access
- State coordinator → Rule model: persists
- State coordinator → Foreground tracking: syncs tracking
- Android system → Foreground tracking: app changes
- Android system → Notification rules: notification events
- State coordinator → Output guards: applies limits
- State coordinator → State bridge: writes state
- State coordinator → Transport selection: selects transport
- Transport selection → Root transport: dispatches
- Transport selection → ADB helper: dispatches
- Transport selection → Shizuku service: binds
- State bridge → ADB helper: writes document
- State bridge → Shizuku service: sends document
- Root transport → State engine: starts
- ADB helper → State engine: starts
- Shizuku service → State engine: owns
- State engine → Pattern renderer: renders frames
- State engine → Privacy scheduler: updates rules
- State engine → Privacy activity: starts watcher
- State engine → Lights backend: pushes frames
- Lights backend → Android lights service: writes LED states
- Access setup → Update checker: checks updates
- Update checker → GitHub releases: checks releases