| // Copyright 2015 The Vanadium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| import 'package:flutter/material.dart'; |
| import 'dart:async'; |
| |
| import 'settings/client.dart' as settings_client; |
| import 'logic/croupier.dart' show Croupier; |
| import 'components/settings_route.dart' show SettingsRoute; |
| import 'components/main_route.dart' show MainRoute; |
| import 'styles/common.dart' as style; |
| |
| class CroupierApp extends StatefulComponent { |
| settings_client.AppSettings appSettings; |
| CroupierApp(this.appSettings); |
| |
| CroupierAppState createState() => new CroupierAppState(); |
| } |
| |
| class CroupierAppState extends State<CroupierApp> { |
| Croupier croupier; |
| |
| void initState() { |
| super.initState(); |
| this.croupier = new Croupier(config.appSettings); |
| } |
| |
| Widget build(BuildContext context) { |
| return new MaterialApp( |
| title: 'Croupier', |
| routes: <String, RouteBuilder>{ |
| "/": (RouteArguments args) => new MainRoute(croupier), |
| "/settings": (RouteArguments args) => new SettingsRoute(croupier) |
| }, |
| theme: style.theme); |
| } |
| } |
| |
| void main() { |
| // TODO(alexfandrianto): Perhaps my app will run better if I initialize more |
| // things here instead of in Croupier. I added this 500 ms delay because the |
| // tablet was sometimes not rendering without it (repainting too early?). |
| new Future.delayed(const Duration(milliseconds: 500), () async { |
| runApp(new CroupierApp(await settings_client.getSettings())); |
| }); |
| } |