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:http/http.dart' as http;
@ -28,6 +28,7 @@ class _EditSettingsScreenState extends State<EditSettingsScreen> {
}
return UISettingsWidget(
origSettings: jsonDecode(jsonEncode(snapshot.requireData)),
settings: snapshot.requireData,
showAdvanced: false,
);
@ -56,7 +57,6 @@ class _EditSettingsScreenState extends State<EditSettingsScreen> {
return {};
}
// UISettingsWidget(settings: {}, showAdvanced: false),
@override
void setState(VoidCallback fn) {
if (!mounted) {

View File

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