Optimize performance
Update core Optimize core stability Fix linux tun authority check error Fix some issues
This commit is contained in:
@@ -1,13 +1,19 @@
|
||||
import 'package:fl_clash/common/proxy.dart';
|
||||
import 'package:fl_clash/models/models.dart';
|
||||
import 'package:fl_clash/providers/state.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
class ProxyManager extends StatelessWidget {
|
||||
class ProxyManager extends ConsumerStatefulWidget {
|
||||
final Widget child;
|
||||
|
||||
const ProxyManager({super.key, required this.child});
|
||||
|
||||
@override
|
||||
ConsumerState createState() => _ProxyManagerState();
|
||||
}
|
||||
|
||||
class _ProxyManagerState extends ConsumerState<ProxyManager> {
|
||||
_updateProxy(ProxyState proxyState) async {
|
||||
final isStart = proxyState.isStart;
|
||||
final systemProxy = proxyState.systemProxy;
|
||||
@@ -20,19 +26,21 @@ class ProxyManager extends StatelessWidget {
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Selector3<AppFlowingState, Config, ClashConfig, ProxyState>(
|
||||
selector: (_, appFlowingState, config, clashConfig) => ProxyState(
|
||||
isStart: appFlowingState.isStart,
|
||||
systemProxy: config.networkProps.systemProxy,
|
||||
port: clashConfig.mixedPort,
|
||||
bassDomain: config.networkProps.bypassDomain,
|
||||
),
|
||||
builder: (_, state, child) {
|
||||
_updateProxy(state);
|
||||
return child!;
|
||||
void initState() {
|
||||
super.initState();
|
||||
ref.listenManual(
|
||||
proxyStateProvider,
|
||||
(prev, next) {
|
||||
if (prev != next) {
|
||||
_updateProxy(next);
|
||||
}
|
||||
},
|
||||
child: child,
|
||||
fireImmediately: true,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return widget.child;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user