Refactor request rewrite and SSL widget state management for improved clarity and functionality (#679)

This commit is contained in:
wanghongenpin
2026-01-22 12:55:07 +08:00
parent 7008072a70
commit 74b0c5e077
2 changed files with 9 additions and 22 deletions

View File

@@ -46,24 +46,11 @@ class MobileRequestRewrite extends StatefulWidget {
}
class _MobileRequestRewriteState extends State<MobileRequestRewrite> {
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<MobileRequestRewrite> {
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: [

View File

@@ -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<MobileSslWidget> createState() => _MobileSslState();
}
class _MobileSslState extends State<MobileSslWidget> {
bool changed = false;
// iOS CA status
bool _loading = false;
@@ -84,9 +82,6 @@ class _MobileSslState extends State<MobileSslWidget> {
@override
void dispose() {
if (changed) {
widget.proxyServer.configuration.flushConfig();
}
super.dispose();
}
@@ -121,10 +116,9 @@ class _MobileSslState extends State<MobileSslWidget> {
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),