fix(eq): seed device ID at startup and add device management UI
Fix multi-device EQ auto-switching by calling obtenerDispositivoActual() during cargarPersistido() to seed the initial device ID. Add device management modal with rename support, EQ preset editing, and connection status indicator. Translate device UI keys to all 13 locales.
This commit is contained in:
@@ -169,4 +169,64 @@ void main() {
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Phase 1 (eq-device-autoswitch-ux): nombresDispositivos persistence
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
group('ServicioEcualizador — nombresDispositivos (eq-device-autoswitch-ux)', () {
|
||||
// 1.1 RED — cargarNombresDispositivos returns empty map when SP key absent
|
||||
test('1.1 cargar returns empty nombresDispositivos when SP key absent', () async {
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
final servicio = ServicioEcualizador(prefs: prefs);
|
||||
final config = await servicio.cargar();
|
||||
expect(config.nombresDispositivos, isEmpty);
|
||||
});
|
||||
|
||||
// 1.2 RED — guardarNombresDispositivos writes to eq_nombres_dispositivos_v1 SP key
|
||||
test('1.2 guardarNombresDispositivos persists names and cargar restores them', () async {
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
final servicio = ServicioEcualizador(prefs: prefs);
|
||||
|
||||
await servicio.guardarNombresDispositivos({'bt_a2dp:AA:BB': 'Living Room BT'});
|
||||
final config = await servicio.cargar();
|
||||
|
||||
expect(config.nombresDispositivos['bt_a2dp:AA:BB'], equals('Living Room BT'));
|
||||
});
|
||||
|
||||
// 1.3 RED — round-trip: save → load returns same map
|
||||
test('1.3 round-trip save → cargar preserves all entries', () async {
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
final servicio = ServicioEcualizador(prefs: prefs);
|
||||
const nombres = {
|
||||
'bt_a2dp:AA:BB': 'Living Room BT',
|
||||
'wired_headset': 'Office Headset',
|
||||
'builtin_speaker': 'Built-in',
|
||||
};
|
||||
|
||||
await servicio.guardarNombresDispositivos(nombres);
|
||||
final config = await servicio.cargar();
|
||||
|
||||
expect(config.nombresDispositivos, equals(nombres));
|
||||
});
|
||||
|
||||
// guardarConfiguracion also persists nombresDispositivos
|
||||
test('1.7 guardarConfiguracion persists nombresDispositivos round-trip', () async {
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
final servicio = ServicioEcualizador(prefs: prefs);
|
||||
final config = ConfiguracionEcualizador(
|
||||
principal: PresetEcualizador.flat,
|
||||
porEmisora: {},
|
||||
eqMultiDeviceEnabled: true,
|
||||
presetsDispositivo: {},
|
||||
presetsMatriz: {},
|
||||
nombresDispositivos: {'bt_a2dp:AA:BB': 'My Speaker'},
|
||||
);
|
||||
|
||||
await servicio.guardarConfiguracion(config);
|
||||
final restored = await servicio.cargar();
|
||||
|
||||
expect(restored.nombresDispositivos['bt_a2dp:AA:BB'], equals('My Speaker'));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user