How lghs/lab works
Little Android Brother is an Android TV/tablet home-screen dashboard for the Liège Hackerspace. Android launches MainActivity, which starts camera tiles and coordinates lifecycle-bound polling and flows; the result is a live dashboard showing door/cameras, weather, Deliveroo, music, TEC buses and SNCB trains. Transport data additionally depends on periodically refreshed configuration and generated schedules. The graph preserves the documented integrations; unsampled implementations are represented by their exact source paths, and edges are limited to calls or relationships visible in excerpts or README.
Main entry points: MainActivity.kt Dashboard activity · TransportConfig.kt Transport config · Renderer.kt Streaming renderers · Mpd.kt MPD playback
Components 26
Android dashboard
- Dashboard activity
app/src/main/java/be/lghs/lab/MainActivity.kt - Boot receiver
app/src/main/java/be/lghs/lab/BootReceiver.kt - Dashboard layout
app/src/main/java/be/lghs/lab/ui/DashboardLayout.kt - Camera tiles
app/src/main/java/be/lghs/lab/CameraTileView.kt - Info panel
app/src/main/java/be/lghs/lab/ui/InfoPanel.kt - Departure board
app/src/main/java/be/lghs/lab/ui/TransportPanel.kt - Music panel
app/src/main/java/be/lghs/lab/ui/MusicPanel.kt
Transport boards
- Transport config
app/src/main/java/be/lghs/lab/data/TransportConfig.kt - TEC departures
app/src/main/java/be/lghs/lab/data/Tec.kt - SNCB departures
app/src/main/java/be/lghs/lab/data/Trains.kt
Music playback
- MPD playback
app/src/main/java/be/lghs/lab/data/Mpd.kt - Streaming renderers
app/src/main/java/be/lghs/lab/data/Renderer.kt
Status and data
- Door status
app/src/main/java/be/lghs/lab/data/Nuki.kt - Delivery status
app/src/main/java/be/lghs/lab/data/Deliveroo.kt - Weather forecast
app/src/main/java/be/lghs/lab/data/Weather.kt - HTTP client
app/src/main/java/be/lghs/lab/data/Http.kt - Device config
app/src/main/java/be/lghs/lab/Config.kt
Other components
- Resident
- UniFi Protect
- Nuki bridge
- Deliveroo endpoint
- Open-Meteo
- moOde
- TEC GTFS-RT
- iRail
- Dashboard config
dashboard/transport.json
Connections 30
- Resident → Dashboard activity: opens
README.md - Boot receiver → Dashboard activity: starts
app/src/main/java/be/lghs/lab/BootReceiver.kt - Dashboard activity → Camera tiles: starts
app/src/main/java/be/lghs/lab/MainActivity.kt - Camera tiles → UniFi Protect: streams
README.md - Dashboard activity → Door status: polls
app/src/main/java/be/lghs/lab/MainActivity.kt - Door status → Nuki bridge: reads state
app/src/main/java/be/lghs/lab/data/Nuki.kt - Dashboard activity → Delivery status: polls
app/src/main/java/be/lghs/lab/MainActivity.kt - Delivery status → Deliveroo endpoint: fetches
app/src/main/java/be/lghs/lab/data/Deliveroo.kt - Dashboard activity → Weather forecast: polls
app/src/main/java/be/lghs/lab/MainActivity.kt - Weather forecast → Open-Meteo: fetches
app/src/main/java/be/lghs/lab/data/Weather.kt - Dashboard activity → Info panel: updates
app/src/main/java/be/lghs/lab/MainActivity.kt - Dashboard activity → Transport config: awaits config
app/src/main/java/be/lghs/lab/MainActivity.kt - Transport config → Dashboard config: loads defaults
README.md - Transport config → HTTP client: fetches remote config
app/src/main/java/be/lghs/lab/data/TransportConfig.kt - Transport config → TEC GTFS-RT: supplies schedules
README.md - Dashboard activity → TEC departures: fetches departures
app/src/main/java/be/lghs/lab/MainActivity.kt - TEC departures → TEC GTFS-RT: reads delays
README.md - Dashboard activity → SNCB departures: fetches routes
app/src/main/java/be/lghs/lab/MainActivity.kt - SNCB departures → iRail: queries
README.md - Dashboard activity → Departure board: shows departures
app/src/main/java/be/lghs/lab/MainActivity.kt - Dashboard activity → MPD playback: collects playback
app/src/main/java/be/lghs/lab/MainActivity.kt - Dashboard activity → Streaming renderers: collects playback
app/src/main/java/be/lghs/lab/MainActivity.kt - Streaming renderers → MPD playback: overrides when active
- Dashboard activity → Music panel: shows playback
app/src/main/java/be/lghs/lab/MainActivity.kt - MPD playback → moOde: controls via MPD
README.md - Streaming renderers → moOde: reads metadata
app/src/main/java/be/lghs/lab/data/Renderer.kt - MPD playback → HTTP client: uses
app/src/main/java/be/lghs/lab/data/Mpd.kt - Streaming renderers → HTTP client: uses
app/src/main/java/be/lghs/lab/data/Renderer.kt - Music panel → HTTP client: loads covers
app/src/main/java/be/lghs/lab/ui/MusicPanel.kt - Device config → Camera tiles: provides stream URLs
app/src/main/java/be/lghs/lab/Config.kt