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.
1.6 KiB
1.6 KiB
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
- Connection status indicator (green dot if
entry.key == eq.dispositivoActualId) - Device custom name storage (
eq_nombres_dispositivos_v1SP key) - Display name fallback:
customName ?? platformName (non-empty) ?? deviceId - Modal bottom sheet for device editing: rename TextField + EcualizadorWidget
- Follows existing modal pattern:
showModalBottomSheet(showDragHandle: true, isScrollControlled: true)
Affected Files
lib/estado/estado_ecualizador.dart— fix init + rename APIlib/servicios/servicio_ecualizador.dart— new SP key for nameslib/pantallas/pantalla_ajustes.dart— rewrite device section + new modal- Tests for all changes