docs(openspec): add SDD artifact trail for recent alarm and EQ changes
Persist the exploration, proposal, spec, design, tasks, and verify/archive reports produced during the multi-device EQ, alarm-countdown, and notification-visual-polish SDD cycles.
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
# Exploration: EQ Device Auto-Switch & Settings UX
|
||||
|
||||
## Bug: EQ doesn't auto-switch on device connect/disconnect
|
||||
|
||||
### Root Cause
|
||||
`EstadoEcualizador.cargarPersistido()` never calls `obtenerDispositivoActual()` at startup. `_dispositivoActualId` stays `null`, so `_resolverPresetActivo()` always returns `_presetPrincipal` (device preset never applied) until the next physical connect/disconnect event.
|
||||
|
||||
### What works correctly
|
||||
Once `_dispositivoActualId` is set (via a stream event), `_onDispositivoCambiado()` correctly: sets ID, bootstraps first-seen device, re-resolves 4-level hierarchy, applies preset, notifies listeners.
|
||||
|
||||
### Fix
|
||||
Call `obtenerDispositivoActual()` in `cargarPersistido()` after `_configurarSuscripcionDispositivo()` to seed initial device ID.
|
||||
|
||||
## Feature: Settings Device List Improvements
|
||||
|
||||
### Current state
|
||||
`_SeccionEcualizadorAvanzado` shows raw device IDs (`bt_a2dp:AA:BB:CC`) + preset name. No connection indicator, no renaming, no EQ editing.
|
||||
|
||||
### Needed
|
||||
1. Connection status indicator (green dot if `entry.key == eq.dispositivoActualId`)
|
||||
2. Device custom name storage (`eq_nombres_dispositivos_v1` SP key)
|
||||
3. Display name fallback: `customName ?? platformName (non-empty) ?? deviceId`
|
||||
4. Modal bottom sheet for device editing: rename TextField + EcualizadorWidget
|
||||
5. Follows existing modal pattern: `showModalBottomSheet(showDragHandle: true, isScrollControlled: true)`
|
||||
|
||||
## Affected Files
|
||||
- `lib/estado/estado_ecualizador.dart` — fix init + rename API
|
||||
- `lib/servicios/servicio_ecualizador.dart` — new SP key for names
|
||||
- `lib/pantallas/pantalla_ajustes.dart` — rewrite device section + new modal
|
||||
- Tests for all changes
|
||||
Reference in New Issue
Block a user