Files
MWClash/lib/widgets/android_container.dart

47 lines
1.0 KiB
Dart
Raw Normal View History

import 'package:fl_clash/state.dart';
2024-04-30 23:38:49 +08:00
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
class AndroidContainer extends StatefulWidget {
final Widget child;
const AndroidContainer({
super.key,
required this.child,
});
@override
State<AndroidContainer> createState() => _AndroidContainerState();
}
class _AndroidContainerState extends State<AndroidContainer>
with WidgetsBindingObserver {
2024-04-30 23:38:49 +08:00
@override
void initState() {
super.initState();
SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge);
WidgetsBinding.instance.addObserver(this);
}
@override
Future<void> didChangeAppLifecycleState(AppLifecycleState state) async {
final isPaused = state == AppLifecycleState.paused;
if (isPaused) {
await globalState.appController.savePreferences();
2024-04-30 23:38:49 +08:00
}
}
@override
Widget build(BuildContext context) {
return widget.child;
}
@override
void dispose() {
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}
}