fix(player): stabilize equalizer and visualizer
Build & Deploy Pluriwave / Análisis de código (push) Successful in 12s
Build & Deploy Pluriwave / Build APK + AAB release (push) Successful in 1m50s

This commit is contained in:
2026-05-21 21:56:25 +02:00
parent d0ceaac3f3
commit 921e972183
8 changed files with 427 additions and 228 deletions
+11 -3
View File
@@ -8,15 +8,18 @@ class ConfiguracionEcualizador {
const ConfiguracionEcualizador({
required this.principal,
required this.porEmisora,
this.activo = true,
});
final PresetEcualizador principal;
final Map<String, PresetEcualizador> porEmisora;
final bool activo;
}
class ServicioEcualizador {
static const _keyPresetPrincipal = 'eq_preset_principal_v1';
static const _keyPresetsPorEmisora = 'eq_presets_por_emisora_v1';
static const _keyActivo = 'eq_activo_v1';
Future<ConfiguracionEcualizador> cargar() async {
final prefs = await SharedPreferences.getInstance();
@@ -25,6 +28,7 @@ class ServicioEcualizador {
return ConfiguracionEcualizador(
principal: principal,
porEmisora: porEmisora,
activo: prefs.getBool(_keyActivo) ?? true,
);
}
@@ -40,6 +44,11 @@ class ServicioEcualizador {
await _guardarPresetsPorEmisora(prefs, mapa);
}
Future<void> guardarActivo(bool activo) async {
final prefs = await SharedPreferences.getInstance();
await prefs.setBool(_keyActivo, activo);
}
Future<void> eliminarPorEmisora(String uuid) async {
final prefs = await SharedPreferences.getInstance();
final mapa = _leerPresetsPorEmisora(prefs);
@@ -54,6 +63,7 @@ class ServicioEcualizador {
jsonEncode(config.principal.toJson()),
);
await _guardarPresetsPorEmisora(prefs, config.porEmisora);
await prefs.setBool(_keyActivo, config.activo);
}
PresetEcualizador _leerPresetPrincipal(SharedPreferences prefs) {
@@ -82,9 +92,7 @@ class ServicioEcualizador {
return data.map(
(uuid, preset) => MapEntry(
uuid,
PresetEcualizador.desdeJson(
Map<String, dynamic>.from(preset as Map),
),
PresetEcualizador.desdeJson(Map<String, dynamic>.from(preset as Map)),
),
);
} catch (_) {