Files
FreeTLab bccc5c48b8
Build & Deploy PluriWave / Análisis de código (push) Successful in 38s
Build & Deploy PluriWave / Build APK + AAB release (push) Successful in 2m30s
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.
2026-07-04 12:42:11 +02:00

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

  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