# RetroHA — Task Tracker Methodology: Incremental Kanban (Simple .md file) ## [PHASE 1] Foundations (Proof of Concept) - [x] Project configuration (minSdk 19, Kotlin, Retrofit) - [x] Login screen (URL + Token) - [x] Configuration persistence in SharedPreferences - [x] Basic REST client (fetch `/api/states`) - [x] Connection verification (Online/Offline status) ## [PHASE 2] Custom Graphics Engine (Bauhaus Canvas) - [x] `WidgetCardView` implementation (Custom View) - [x] Manual tile rendering (background, border, shadow) - [x] Manual text rendering with `StaticLayout` optimization - [x] Icon system (`HaIcons.kt`) rendered on Canvas - [x] Widget grid (GridView) with responsive column count ## [PHASE 3] Data Integration & Entity Selection - [x] Mapping Home Assistant states to visual styles - [x] Entity browser and selection screen (Searchable) - [x] Persistent storage of selected widget list - [x] Domain filtering via Tabs (Lighting, Sockets, Power, etc.) - [x] Automatic background data refresh ## [PHASE 4] Interactions & Control - [x] Short click handling (Toggle / Execute) - [x] Pulsing animation during state transitions (Toggling) - [x] Brightness control menu (LightControlDialog) - [x] Button removal from brightness menu (Auto-save on release) - [x] Dismiss menu on outside touch - [x] Vertical brightness-based tile fill for lights - [x] WebSocket toggle in connection settings ## [PHASE 5] UX Polish & Stability - [x] Internationalization (PL/EN support) - [x] Kiosk Mode (Wake Lock - prevent screen sleep) - [x] Dark Mode support across all screens - [x] `onDraw` performance optimization (zero allocation in draw loop) - [x] Stability testing (Monkey Stress Test) ## Future Development - [x] WebSocket implementation for real-time updates - [ ] Support for `climate` and `media_player` domains - [ ] RGB color support for lighting --- *Legend:* - [x] - Done - [ ] - To Do