import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../../estado/estado_ecualizador.dart'; import '../../estado/estado_radio.dart'; import '../../l10n/gen/app_localizations.dart'; import '../../widgets/ecualizador_widget.dart'; import '../../widgets/pluri_glass_surface.dart'; import '../../widgets/pluri_layout.dart'; import '../../widgets/pluri_push_scaffold.dart'; /// AUDIO group · "Ecualizador" (design ADR-3). Body moved verbatim from the /// former `_SeccionEcualizador` in `pantalla_ajustes.dart` — only the panel /// header row (icon + title + status chip) was removed, since /// [PluriPushScaffold] now carries the title and the very next row already /// shows the same active/disabled state. /// /// This body is a placeholder pending WU13's restyle (ADR-3's own component /// inventory: "body rewritten by WU13"). class PantallaAjustesEcualizador extends StatelessWidget { const PantallaAjustesEcualizador({super.key}); @override Widget build(BuildContext context) => PluriPushScaffold( title: AppLocalizations.of(context).equalizerTitle, body: ListView( padding: PluriLayout.pageContentPadding, children: const [_CuerpoEcualizador()], ), ); } class _CuerpoEcualizador extends StatelessWidget { const _CuerpoEcualizador(); @override Widget build(BuildContext context) { // EQ state comes from EstadoEcualizador (S4-R1/S4-R5); EstadoRadio is // only consulted for the current station + favorite flag. return Consumer2( builder: (ctx, estado, eq, _) { final disponible = eq.disponible; final l10n = AppLocalizations.of(ctx); final emisoraActual = estado.emisoraActual; final mostrarModoPorEmisora = emisoraActual != null && estado.emisoraActualEsFavorita; final usandoEqPropio = eq.emisoraActualTienePresetPropio; return PluriGlassSurface( child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ SwitchListTile.adaptive( contentPadding: EdgeInsets.zero, title: Text(l10n.equalizerEnable), subtitle: Text( disponible ? l10n.equalizerRealtimeSubtitle : l10n.equalizerPendingSubtitle, ), value: eq.activo, onChanged: eq.cambiarActivo, ), if (mostrarModoPorEmisora) ...[ const SizedBox(height: 8), SwitchListTile.adaptive( contentPadding: EdgeInsets.zero, title: Text(l10n.equalizerPerStationTitle), subtitle: Text( usandoEqPropio ? l10n.equalizerPerStationActive(emisoraActual.nombre) : l10n.equalizerPerStationMain(emisoraActual.nombre), ), value: usandoEqPropio, onChanged: (usarPropio) => eq.cambiarModoEmisoraActual(usarPropio: usarPropio), ), ], const SizedBox(height: 8), PresetsEcualizadorWidget( presetActual: eq.presetActual, onSeleccionar: (p) => eq.cambiarPreset(p), ), const SizedBox(height: 12), EcualizadorWidget( preset: eq.presetActual, onCambio: (p) => eq.cambiarPreset(p), ), ], ), ); }, ); } }