| // Copyright 2018 The Fuchsia 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:lib.widgets/model.dart'; |
| import 'package:flutter/material.dart'; |
| import 'package:flutter/widgets.dart'; |
| import 'package:lib.display.flutter/display_policy_brightness_model.dart'; |
| import 'package:lib.settings/widgets.dart'; |
| |
| Widget _buildDisplaySettings( |
| {@required DisplayPolicyBrightnessModel model, @required double scale}) { |
| return SettingsPage(scale: scale, sections: [_buildBrightness(model, scale)]); |
| } |
| |
| SettingsSection _buildBrightness( |
| DisplayPolicyBrightnessModel model, double scale) { |
| return SettingsSection( |
| title: 'Brightness', |
| scale: scale, |
| child: new Slider( |
| activeColor: Colors.grey[600], |
| inactiveColor: Colors.grey[200], |
| value: model.brightness, |
| onChanged: (double brightness) => model.brightness = brightness, |
| min: DisplayPolicyBrightnessModel.minLevel, |
| max: DisplayPolicyBrightnessModel.maxLevel, |
| divisions: 9, |
| )); |
| } |
| |
| /// Widget that displays system settings such as update. |
| class DisplaySettings extends StatelessWidget { |
| const DisplaySettings(); |
| |
| @override |
| Widget build(BuildContext context) => |
| new ScopedModelDescendant<DisplayPolicyBrightnessModel>( |
| builder: ( |
| BuildContext context, |
| Widget child, |
| DisplayPolicyBrightnessModel model, |
| ) => |
| new LayoutBuilder( |
| builder: (BuildContext context, BoxConstraints constraints) => |
| Material( |
| child: _buildDisplaySettings( |
| model: model, |
| scale: |
| constraints.maxHeight > 360.0 ? 1.0 : 0.5)))); |
| } |