| OLD | NEW |
| (Empty) | |
| 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 |
| 3 // found in the LICENSE file. |
| 4 |
| 5 import 'package:sky/widgets/basic.dart'; |
| 6 import 'package:sky/widgets/switch.dart'; |
| 7 import 'package:sky/widgets/icon_button.dart'; |
| 8 import 'package:sky/widgets/material.dart'; |
| 9 import 'package:sky/widgets/menu_item.dart'; |
| 10 import 'package:sky/widgets/navigator.dart'; |
| 11 import 'package:sky/widgets/scaffold.dart'; |
| 12 import 'package:sky/widgets/tool_bar.dart'; |
| 13 import 'package:sky/widgets/theme.dart'; |
| 14 |
| 15 import 'fitness_types.dart'; |
| 16 |
| 17 typedef void SettingsUpdater({ |
| 18 BackupMode backup |
| 19 }); |
| 20 |
| 21 class SettingsFragment extends Component { |
| 22 |
| 23 SettingsFragment(this.navigator, this.backup, this.updater); |
| 24 |
| 25 final Navigator navigator; |
| 26 final BackupMode backup; |
| 27 final SettingsUpdater updater; |
| 28 |
| 29 bool showModeDialog = false; |
| 30 |
| 31 void _handleBackupChanged(bool value) { |
| 32 if (updater != null) |
| 33 updater(backup: value ? BackupMode.enabled : BackupMode.disabled); |
| 34 } |
| 35 |
| 36 Widget buildToolBar() { |
| 37 return new ToolBar( |
| 38 left: new IconButton( |
| 39 icon: 'navigation/arrow_back_white', |
| 40 onPressed: navigator.pop), |
| 41 center: new Text('Settings') |
| 42 ); |
| 43 } |
| 44 |
| 45 Widget buildSettingsPane() { |
| 46 return new Material( |
| 47 type: MaterialType.canvas, |
| 48 child: new Container( |
| 49 padding: const EdgeDims.symmetric(vertical: 20.0), |
| 50 child: new Block([ |
| 51 new MenuItem( |
| 52 onPressed: () { _handleBackupChanged(!(backup == BackupMode.enabled)
); }, |
| 53 children: [ |
| 54 new Flexible(child: new Text('Back up data to the cloud')), |
| 55 new Switch(value: backup == BackupMode.enabled, onChanged: _handle
BackupChanged) |
| 56 ] |
| 57 ), |
| 58 new MenuItem( |
| 59 children: [ |
| 60 new Block([ |
| 61 new Text('Height'), |
| 62 new Text("6'2\"", style: Theme.of(this).text.caption), |
| 63 ]) |
| 64 ] |
| 65 ), |
| 66 ]) |
| 67 ) |
| 68 ); |
| 69 } |
| 70 |
| 71 Widget build() { |
| 72 return new Scaffold( |
| 73 toolbar: buildToolBar(), |
| 74 body: buildSettingsPane() |
| 75 ); |
| 76 } |
| 77 } |
| OLD | NEW |