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:
@@ -287,6 +287,7 @@ class FakeServicioEcualizador extends ServicioEcualizador {
|
||||
bool eqMultiDeviceEnabled = false,
|
||||
Map<String, PresetEcualizador>? presetsDispositivo,
|
||||
Map<String, PresetEcualizador>? presetsMatriz,
|
||||
Map<String, String>? nombresDispositivos,
|
||||
}) : _config = ConfiguracionEcualizador(
|
||||
principal: principal ?? PresetEcualizador.flat,
|
||||
porEmisora: porEmisora ?? {},
|
||||
@@ -294,6 +295,7 @@ class FakeServicioEcualizador extends ServicioEcualizador {
|
||||
eqMultiDeviceEnabled: eqMultiDeviceEnabled,
|
||||
presetsDispositivo: presetsDispositivo ?? {},
|
||||
presetsMatriz: presetsMatriz ?? {},
|
||||
nombresDispositivos: nombresDispositivos ?? {},
|
||||
);
|
||||
|
||||
ConfiguracionEcualizador _config;
|
||||
@@ -311,6 +313,7 @@ class FakeServicioEcualizador extends ServicioEcualizador {
|
||||
eqMultiDeviceEnabled: _config.eqMultiDeviceEnabled,
|
||||
presetsDispositivo: _config.presetsDispositivo,
|
||||
presetsMatriz: _config.presetsMatriz,
|
||||
nombresDispositivos: _config.nombresDispositivos,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -323,6 +326,7 @@ class FakeServicioEcualizador extends ServicioEcualizador {
|
||||
eqMultiDeviceEnabled: _config.eqMultiDeviceEnabled,
|
||||
presetsDispositivo: _config.presetsDispositivo,
|
||||
presetsMatriz: _config.presetsMatriz,
|
||||
nombresDispositivos: _config.nombresDispositivos,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -399,8 +403,45 @@ class FakeServicioEcualizador extends ServicioEcualizador {
|
||||
eqMultiDeviceEnabled: _config.eqMultiDeviceEnabled,
|
||||
presetsDispositivo: _config.presetsDispositivo,
|
||||
presetsMatriz: mapa,
|
||||
nombresDispositivos: _config.nombresDispositivos,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> guardarNombresDispositivos(Map<String, String> nombres) async {
|
||||
_config = ConfiguracionEcualizador(
|
||||
principal: _config.principal,
|
||||
porEmisora: _config.porEmisora,
|
||||
activo: _config.activo,
|
||||
eqMultiDeviceEnabled: _config.eqMultiDeviceEnabled,
|
||||
presetsDispositivo: _config.presetsDispositivo,
|
||||
presetsMatriz: _config.presetsMatriz,
|
||||
nombresDispositivos: nombres,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/// A [ServicioDispositivoAudio] fake that throws on [obtenerDispositivoActual].
|
||||
///
|
||||
/// Used to test the graceful-failure path in [EstadoEcualizador.cargarPersistido].
|
||||
class FakeServicioDispositivoAudioThrows extends ServicioDispositivoAudio {
|
||||
final _controller = StreamController<DispositivoAudio>.broadcast();
|
||||
|
||||
@override
|
||||
DispositivoAudio? get dispositivoActual => null;
|
||||
|
||||
@override
|
||||
Stream<DispositivoAudio> get onDispositivoCambiado => _controller.stream;
|
||||
|
||||
@override
|
||||
Future<DispositivoAudio> obtenerDispositivoActual() async {
|
||||
throw Exception('Platform channel error: device unavailable');
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> dispose() async {
|
||||
await _controller.close();
|
||||
}
|
||||
}
|
||||
|
||||
/// Fake implementation of [ServicioDispositivoAudio] for unit tests.
|
||||
|
||||
Reference in New Issue
Block a user