// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. part of fitness; typedef void SettingsUpdater({ BackupMode backup }); class SettingsFragment extends Component { SettingsFragment(this.navigator, this.backup, this.updater); final Navigator navigator; final BackupMode backup; final SettingsUpdater updater; void _handleBackupChanged(bool value) { if (updater != null) updater(backup: value ? BackupMode.enabled : BackupMode.disabled); } Widget buildToolBar() { return new ToolBar( left: new IconButton( icon: "navigation/arrow_back", onPressed: navigator.pop), center: new Text('Settings') ); } Widget buildSettingsPane() { return new Material( type: MaterialType.canvas, child: new ScrollableViewport( child: new Container( padding: const EdgeDims.symmetric(vertical: 20.0), child: new Block([ new DrawerItem( onPressed: () { _handleBackupChanged(!(backup == BackupMode.enabled)); }, children: [ new Flexible(child: new Text('Back up data to the cloud')), new Switch(value: backup == BackupMode.enabled, onChanged: _handleBackupChanged) ] ) ]) ) ) ); } Widget build() { return new Scaffold( toolbar: buildToolBar(), body: buildSettingsPane() ); } }