Support proxies search Support svg display Optimize config persistence Add some scenes auto close connections Update core Optimize more details
48 lines
1.0 KiB
Dart
48 lines
1.0 KiB
Dart
import 'package:fl_clash/common/common.dart';
|
|
import 'package:fl_clash/enum/enum.dart';
|
|
import 'package:fl_clash/providers/app.dart';
|
|
import 'package:fl_clash/providers/state.dart';
|
|
import 'package:fl_clash/state.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
|
|
class VpnManager extends ConsumerStatefulWidget {
|
|
final Widget child;
|
|
|
|
const VpnManager({
|
|
super.key,
|
|
required this.child,
|
|
});
|
|
|
|
@override
|
|
ConsumerState<VpnManager> createState() => _VpnContainerState();
|
|
}
|
|
|
|
class _VpnContainerState extends ConsumerState<VpnManager> {
|
|
@override
|
|
void initState() {
|
|
super.initState();
|
|
ref.listenManual(vpnStateProvider, (prev, next) {
|
|
showTip();
|
|
});
|
|
}
|
|
|
|
showTip() {
|
|
debouncer.call(
|
|
FunctionTag.vpnTip,
|
|
() {
|
|
if (ref.read(runTimeProvider.notifier).isStart) {
|
|
globalState.showNotifier(
|
|
appLocalizations.vpnTip,
|
|
);
|
|
}
|
|
},
|
|
);
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return widget.child;
|
|
}
|
|
}
|