diff --git a/lib/modules/eq_settings/views/widgets/row_equalizer_widget.dart b/lib/modules/eq_settings/views/widgets/row_equalizer_widget.dart index 93194c36c..cccd24734 100644 --- a/lib/modules/eq_settings/views/widgets/row_equalizer_widget.dart +++ b/lib/modules/eq_settings/views/widgets/row_equalizer_widget.dart @@ -28,6 +28,15 @@ class _RowEqualizerWidgetState extends State { )['label']; } + void _setLabel() { + setState(() { + _label = _templateData['options'].firstWhere( + (option) => listEquals(_templateData['value'], option['value']), + orElse: () => {'label': ''}, + )['label']; + }); + } + @override Widget build(BuildContext context) { final isDarkMode = Theme.of(context).brightness == Brightness.dark; @@ -35,12 +44,9 @@ class _RowEqualizerWidgetState extends State { return GestureDetector( onTap: () async { var result = await Get.to(() => SelectEqualizerWidget(_templateData)); + _setLabel(); if (result != null) { - setState(() { - _label = result['label']; - }); - _templateData['value'] = result['value']; - _templateData['onCallback'](result['value']); + _templateData['onCallback'](_templateData['value']); } }, behavior: HitTestBehavior.translucent, diff --git a/lib/modules/eq_settings/views/widgets/select_equalizer_widget.dart b/lib/modules/eq_settings/views/widgets/select_equalizer_widget.dart index 98fe0549e..3532b18ac 100644 --- a/lib/modules/eq_settings/views/widgets/select_equalizer_widget.dart +++ b/lib/modules/eq_settings/views/widgets/select_equalizer_widget.dart @@ -195,10 +195,8 @@ class _SelectEqualizerWidgetState extends State { Widget _item(bool isDarkMode, Map option, bool isSelected) { return GestureDetector( onTap: () { - Get.back(result: { - 'label': option['label'], - 'value': option['value'], - }); + _templateData['value'] = option['value']; + Get.back(result: true); }, child: Stack( children: [ @@ -242,6 +240,10 @@ class _SelectEqualizerWidgetState extends State { right: 4.w, child: GestureDetector( onTap: () { + if (isSelected) { + _templateData['value'] = []; + _templateData['onCallback']([]); + } setState(() { _templateData['options'].remove(option); });