Files
MWClash/lib/manager/app_state_manager.dart
chen08209 4e679f776e Optimize performance
Update core

Optimize core stability

Fix linux tun authority check error

Fix some issues
2025-03-05 10:21:51 +08:00

59 lines
1.3 KiB
Dart

import 'package:fl_clash/common/common.dart';
import 'package:fl_clash/state.dart';
import 'package:flutter/material.dart';
class AppStateManager extends StatefulWidget {
final Widget child;
const AppStateManager({
super.key,
required this.child,
});
@override
State<AppStateManager> createState() => _AppStateManagerState();
}
class _AppStateManagerState extends State<AppStateManager>
with WidgetsBindingObserver {
@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
}
@override
void dispose() {
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}
@override
Future<void> didChangeAppLifecycleState(AppLifecycleState state) async {
if (state == AppLifecycleState.paused ||
state == AppLifecycleState.inactive) {
globalState.appController.savePreferences();
render?.pause();
} else {
render?.resume();
}
}
@override
void didChangePlatformBrightness() {
globalState.appController.updateBrightness(
WidgetsBinding.instance.platformDispatcher.platformBrightness,
);
}
@override
Widget build(BuildContext context) {
return Listener(
onPointerHover: (_) {
render?.resume();
},
child: widget.child,
);
}
}