This commit is contained in:
Scott E. Graves 2025-03-20 09:33:10 -05:00
parent 40d71223ae
commit ba5bde24e1
2 changed files with 10 additions and 11 deletions

View File

@ -1,4 +1,4 @@
import 'dart:convert' show jsonDecode; import 'dart:convert' show jsonDecode, jsonEncode;
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
@ -28,6 +28,7 @@ class _EditSettingsScreenState extends State<EditSettingsScreen> {
} }
return UISettingsWidget( return UISettingsWidget(
origSettings: jsonDecode(jsonEncode(snapshot.requireData)),
settings: snapshot.requireData, settings: snapshot.requireData,
showAdvanced: false, showAdvanced: false,
); );
@ -56,7 +57,6 @@ class _EditSettingsScreenState extends State<EditSettingsScreen> {
return {}; return {};
} }
// UISettingsWidget(settings: {}, showAdvanced: false),
@override @override
void setState(VoidCallback fn) { void setState(VoidCallback fn) {
if (!mounted) { if (!mounted) {

View File

@ -16,8 +16,10 @@ import 'package:settings_ui/settings_ui.dart';
class UISettingsWidget extends StatefulWidget { class UISettingsWidget extends StatefulWidget {
final bool showAdvanced; final bool showAdvanced;
final Map<String, dynamic> settings; final Map<String, dynamic> settings;
final Map<String, dynamic> origSettings;
const UISettingsWidget({ const UISettingsWidget({
super.key, super.key,
required this.origSettings,
required this.settings, required this.settings,
required this.showAdvanced, required this.showAdvanced,
}); });
@ -27,8 +29,6 @@ class UISettingsWidget extends StatefulWidget {
} }
class _UISettingsWidgetState extends State<UISettingsWidget> { class _UISettingsWidgetState extends State<UISettingsWidget> {
late Map<String, dynamic> _origSettings;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
List<SettingsTile> commonSettings = []; List<SettingsTile> commonSettings = [];
@ -100,7 +100,12 @@ class _UISettingsWidgetState extends State<UISettingsWidget> {
@override @override
void dispose() { void dispose() {
if (!DeepCollectionEquality().equals(widget.settings, _origSettings)) { debugPrint('current: ${jsonEncode(widget.settings)}');
debugPrint('orig: ${jsonEncode(widget.origSettings)}');
if (!DeepCollectionEquality().equals(
widget.settings,
widget.origSettings,
)) {
http http
.put( .put(
Uri.parse( Uri.parse(
@ -118,12 +123,6 @@ class _UISettingsWidgetState extends State<UISettingsWidget> {
super.dispose(); super.dispose();
} }
@override
void initState() {
_origSettings = jsonDecode(jsonEncode(widget.settings));
super.initState();
}
@override @override
void setState(VoidCallback fn) { void setState(VoidCallback fn) {
if (!mounted) { if (!mounted) {