From 74b0c5e07722b4d1f58dc1e79bc1bc956518bfe3 Mon Sep 17 00:00:00 2001 From: wanghongenpin Date: Thu, 22 Jan 2026 12:55:07 +0800 Subject: [PATCH] Refactor request rewrite and SSL widget state management for improved clarity and functionality (#679) --- lib/ui/mobile/setting/request_rewrite.dart | 21 +++++++-------------- lib/ui/mobile/setting/ssl.dart | 10 ++-------- 2 files changed, 9 insertions(+), 22 deletions(-) diff --git a/lib/ui/mobile/setting/request_rewrite.dart b/lib/ui/mobile/setting/request_rewrite.dart index 0b7bb26..d1e0cf4 100644 --- a/lib/ui/mobile/setting/request_rewrite.dart +++ b/lib/ui/mobile/setting/request_rewrite.dart @@ -46,24 +46,11 @@ class MobileRequestRewrite extends StatefulWidget { } class _MobileRequestRewriteState extends State { - bool enabled = false; - AppLocalizations get localizations => AppLocalizations.of(context)!; @override void initState() { super.initState(); - enabled = widget.requestRewrites.enabled; - } - - @override - void dispose() { - if (enabled != widget.requestRewrites.enabled) { - widget.requestRewrites.enabled = enabled; - widget.requestRewrites.flushRequestRewriteConfig(); - } - - super.dispose(); } @override @@ -78,7 +65,13 @@ class _MobileRequestRewriteState extends State { Row( children: [ Text(localizations.requestRewriteEnable), - SwitchWidget(value: enabled, scale: 0.8, onChanged: (val) => enabled = val), + SwitchWidget( + value: widget.requestRewrites.enabled, + scale: 0.8, + onChanged: (val) { + widget.requestRewrites.enabled = val; + widget.requestRewrites.flushRequestRewriteConfig(); + }), ], ), Row(mainAxisAlignment: MainAxisAlignment.end, children: [ diff --git a/lib/ui/mobile/setting/ssl.dart b/lib/ui/mobile/setting/ssl.dart index 17ba87b..407e87a 100644 --- a/lib/ui/mobile/setting/ssl.dart +++ b/lib/ui/mobile/setting/ssl.dart @@ -36,16 +36,14 @@ import 'package:url_launcher/url_launcher.dart'; class MobileSslWidget extends StatefulWidget { final ProxyServer proxyServer; - final Function(bool val)? onEnableChange; - const MobileSslWidget({super.key, required this.proxyServer, this.onEnableChange}); + const MobileSslWidget({super.key, required this.proxyServer}); @override State createState() => _MobileSslState(); } class _MobileSslState extends State { - bool changed = false; // iOS CA status bool _loading = false; @@ -84,9 +82,6 @@ class _MobileSslState extends State { @override void dispose() { - if (changed) { - widget.proxyServer.configuration.flushConfig(); - } super.dispose(); } @@ -121,10 +116,9 @@ class _MobileSslState extends State { value: widget.proxyServer.enableSsl, onChanged: (val) { widget.proxyServer.enableSsl = val; - widget.onEnableChange?.call(val); CertificateManager.cleanCache(); setState(() { - changed = true; + widget.proxyServer.configuration.flushConfig(); }); }), Divider(height: 0, thickness: 0.3, color: dividerColor),