46 lines
992 B
Dart
46 lines
992 B
Dart
import 'package:flutter/material.dart';
|
|
import 'package:provider/provider.dart';
|
|
|
|
import 'package:flutter_application_1/app/app_session_view_model.dart';
|
|
|
|
class AppLifecycleHandler extends StatefulWidget {
|
|
final Widget child;
|
|
|
|
const AppLifecycleHandler({
|
|
super.key,
|
|
required this.child,
|
|
});
|
|
|
|
@override
|
|
State<AppLifecycleHandler> createState() => _AppLifecycleHandlerState();
|
|
}
|
|
|
|
class _AppLifecycleHandlerState extends State<AppLifecycleHandler>
|
|
with WidgetsBindingObserver {
|
|
@override
|
|
void initState() {
|
|
super.initState();
|
|
WidgetsBinding.instance.addObserver(this);
|
|
}
|
|
|
|
@override
|
|
void dispose() {
|
|
WidgetsBinding.instance.removeObserver(this);
|
|
super.dispose();
|
|
}
|
|
|
|
@override
|
|
void didChangeAppLifecycleState(AppLifecycleState state) {
|
|
if (!mounted) {
|
|
return;
|
|
}
|
|
|
|
context.read<AppSessionViewModel>().handleAppLifecycleStateChanged(state);
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return widget.child;
|
|
}
|
|
}
|