import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:overlay_support/overlay_support.dart';

import '../layout/game.dart';
import '../layout/parameters.dart';
import '../provider/data.dart';
import '../utils/game_utils.dart';

class Home extends StatefulWidget {
  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) {
    Data myProvider = Provider.of<Data>(context);

    List<Widget> menuActions = [];

    if (myProvider.gameIsRunning) {
      menuActions = [
        FlatButton(
          child: Container(
            decoration: BoxDecoration(
              borderRadius: BorderRadius.circular(4),
              border: Border.all(
                color: Colors.blue,
                width: 4,
              ),
            ),
            margin: EdgeInsets.all(8),
            child: 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)
        ),
      )
    );
  }
}