import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:overlay_support/overlay_support.dart'; import 'package:calculus/layout/game.dart'; import 'package:calculus/layout/parameters.dart'; import 'package:calculus/provider/data.dart'; import 'package:calculus/utils/game_utils.dart'; class Home extends StatefulWidget { const Home({super.key}); static const String id = 'home'; @override HomeState createState() => HomeState(); } class HomeState extends State<Home> { @override void initState() { super.initState(); Data myProvider = Provider.of<Data>(context, listen: false); myProvider.initParametersValues(); } @override Widget build(BuildContext context) { final Data myProvider = Provider.of<Data>(context); final List<Widget> menuActions = []; if (myProvider.gameIsRunning) { menuActions.add( TextButton( child: Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(4), border: Border.all( color: Colors.blue, width: 4, ), ), margin: const EdgeInsets.all(8), child: const Image( image: AssetImage('assets/icons/button_back.png'), fit: BoxFit.fill), ), onPressed: () => toast('Long press to quit game...'), onLongPress: () => GameUtils.resetGame(myProvider), ), ); } return Scaffold( appBar: AppBar( actions: menuActions, ), body: SafeArea( child: Center( child: myProvider.gameIsRunning ? Game.buildGameWidget(myProvider) : Parameters.buildParametersSelector(myProvider)), )); } }