OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 import 'package:sky/rendering/sky_binding.dart'; | 5 import 'package:sky/rendering/sky_binding.dart'; |
6 import 'package:sky/widgets/basic.dart'; | 6 import 'package:sky/widgets/basic.dart'; |
7 import 'package:sky/widgets/navigator.dart'; | 7 import 'package:sky/widgets/navigator.dart'; |
8 import 'package:sky/widgets/widget.dart'; | 8 import 'package:sky/widgets/widget.dart'; |
9 | 9 |
| 10 import 'stock_data.dart'; |
10 import 'stock_home.dart'; | 11 import 'stock_home.dart'; |
11 import 'stock_settings.dart'; | 12 import 'stock_settings.dart'; |
12 | 13 |
13 class StocksApp extends App { | 14 class StocksApp extends App { |
14 | 15 |
15 NavigationState _navState = new NavigationState([ | 16 StocksApp() { |
16 new Route(name: '/', builder: (navigator) => new StockHome(navigator)), | 17 _navigationState = new NavigationState([ |
17 new Route(name: '/settings', builder: (navigator) => new StockSettings(navig
ator)), | 18 new Route( |
18 ]); | 19 name: '/', |
| 20 builder: (navigator, route) => new StockHome(navigator, route, _stocks) |
| 21 ), |
| 22 new Route( |
| 23 name: '/settings', |
| 24 builder: (navigator, route) => new StockSettings(navigator) |
| 25 ), |
| 26 ]); |
| 27 } |
| 28 |
| 29 void didMount() { |
| 30 new StockDataFetcher((StockData data) { |
| 31 setState(() { |
| 32 data.appendTo(_stocks); |
| 33 }); |
| 34 }); |
| 35 } |
| 36 |
| 37 final List<Stock> _stocks = []; |
| 38 NavigationState _navigationState; |
19 | 39 |
20 void onBack() { | 40 void onBack() { |
21 if (_navState.hasPrevious()) { | 41 setState(() { |
22 setState(() { | 42 _navigationState.pop(); |
23 _navState.pop(); | 43 }); |
24 }); | |
25 return; | |
26 } | |
27 print ("Should exit app here"); | |
28 // TODO(jackson): Need a way to invoke default back behavior here | 44 // TODO(jackson): Need a way to invoke default back behavior here |
29 } | 45 } |
30 | 46 |
31 Widget build() { | 47 Widget build() { |
32 return new Navigator(_navState); | 48 return new Navigator(_navigationState); |
33 } | 49 } |
34 } | 50 } |
35 | 51 |
36 void main() { | 52 void main() { |
37 print("starting stocks app!"); | 53 print("starting stocks app!"); |
38 runApp(new StocksApp()); | 54 runApp(new StocksApp()); |
39 SkyBinding.instance.onFrame = () { | 55 SkyBinding.instance.onFrame = () { |
40 // uncomment this for debugging: | 56 // uncomment this for debugging: |
41 // SkyBinding.instance.debugDumpRenderTree(); | 57 // SkyBinding.instance.debugDumpRenderTree(); |
42 }; | 58 }; |
43 } | 59 } |
OLD | NEW |