From e47f2e338afe3726613b55e4e6d08378a458df5d Mon Sep 17 00:00:00 2001 From: tanlongsheng <252620078@qq.com> Date: Thu, 20 Nov 2025 17:05:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=BE=E5=A4=87=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/eq_settings_controller.dart | 14 +++++++++++++ .../widgets/select_equalizer_widget.dart | 21 ++++++++++++++----- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/lib/modules/eq_settings/controllers/eq_settings_controller.dart b/lib/modules/eq_settings/controllers/eq_settings_controller.dart index a80ab8b97..12a373c0c 100644 --- a/lib/modules/eq_settings/controllers/eq_settings_controller.dart +++ b/lib/modules/eq_settings/controllers/eq_settings_controller.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; +import 'package:get_storage/get_storage.dart'; import '../../../core/utils/logger.dart'; import '../../../routes/app_routes.dart'; @@ -187,6 +188,19 @@ class EqSettingsController extends GetxController { } ].obs; + final GetStorage _storage = GetStorage(); + + @override + void onInit() { + super.onInit(); + final List equalizerOptions = _storage.read('equalizer_options') ?? []; + if (equalizerOptions.isNotEmpty) { + List options = + equalizerOptions.map((e) => Map.from(e)).toList(); + uiList[0]['templates'][0]['options'].addAll(options); + } + } + Widget getTemplate(Map data) { return switch (data['type']) { 'equalizer' => RowEqualizerWidget(data), 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 3532b18ac..ea04be1f5 100644 --- a/lib/modules/eq_settings/views/widgets/select_equalizer_widget.dart +++ b/lib/modules/eq_settings/views/widgets/select_equalizer_widget.dart @@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:get_storage/get_storage.dart'; import 'settings_input_widget.dart'; @@ -21,12 +22,16 @@ class _SelectEqualizerWidgetState extends State { bool isEdit = false; + final GetStorage _storage = GetStorage(); + List _equalizerOptions = []; + @override void initState() { super.initState(); if (_templateData['value'].isNotEmpty) { _values = List.from(_templateData['value']); } + _equalizerOptions = _storage.read('equalizer_options') ?? []; } @override @@ -244,6 +249,9 @@ class _SelectEqualizerWidgetState extends State { _templateData['value'] = []; _templateData['onCallback']([]); } + _equalizerOptions.removeWhere( + (e) => listEquals(e['value'], option['value'])); + _storage.write('equalizer_options', _equalizerOptions); setState(() { _templateData['options'].remove(option); }); @@ -281,12 +289,15 @@ class _SelectEqualizerWidgetState extends State { ), ).then((value) { if (value != null) { + Map option = { + 'label': value, + 'value': List.from(_values), + 'default': false, + }; + _equalizerOptions.add(option); + _storage.write('equalizer_options', _equalizerOptions); setState(() { - _templateData['options'].add({ - 'label': value, - 'value': List.from(_values), - 'default': false, - }); + _templateData['options'].add(option); }); } });