Commit e81601a
Changed files (3)
lib
model
lib/model/settings.dart
@@ -24,6 +24,7 @@ class Settings extends ChangeNotifier {
late MaterialColor _sysColor;
late MaterialColor _diaColor;
late MaterialColor _pulColor;
+ late bool _allowManualTimeInput;
Settings._create();
Future<void> _asyncInit() async {
@@ -69,6 +70,7 @@ class Settings extends ChangeNotifier {
var pSysColor = _getSetting('_sysColor');
var pDiaColor = _getSetting('_diaColor');
var pPulColor = _getSetting('_pulColor');
+ var pAllowManualTimeInput = _getSetting('_allowManualTimeInput');
// var ...
_graphStepSize = (await pGraphStepSize as int?) ?? TimeStep.day;
@@ -80,6 +82,7 @@ class Settings extends ChangeNotifier {
_sysColor = createMaterialColor(await pSysColor as int? ?? 0xFF009688);
_diaColor = createMaterialColor(await pDiaColor as int? ?? 0xFF4CAF50);
_pulColor = createMaterialColor(await pPulColor as int? ?? 0xFFF44336);
+ _allowManualTimeInput = ((await pAllowManualTimeInput as int?) ?? 1) == 1 ? true : false;
// ...
return;
}
@@ -179,6 +182,14 @@ class Settings extends ChangeNotifier {
_saveSetting('_pulColor', newColor.value);
notifyListeners();
}
+ bool get allowManualTimeInput {
+ return _allowManualTimeInput;
+ }
+ set allowManualTimeInput(bool newSetting) {
+ _allowManualTimeInput = newSetting;
+ _saveSetting('_allowManualTimeInput', newSetting ? 1 : 0);
+ notifyListeners();
+ }
}
lib/screens/add_measurement.dart
@@ -1,4 +1,5 @@
import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/settings.dart';
import 'package:blood_pressure_app/screens/home.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
@@ -37,23 +38,31 @@ class _AddMeasurementPageState extends State<AddMeasurementPage> {
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
- TextFormField(
- initialValue: _formatter.format(_time),
- decoration: const InputDecoration(
- hintText: 'time'
- ),
- validator: (String? value) {
- if (value == null || value.isEmpty) {
- return 'Please enter a value';
- } else {
- try {
- _time = _formatter.parse(value);
- } on FormatException {
- return 'date format: ${_formatter.pattern}';
+ Consumer<Settings>(
+ builder: (context, settings, child) {
+ if(settings.allowManualTimeInput) {
+ return TextFormField(
+ initialValue: _formatter.format(_time),
+ decoration: const InputDecoration(
+ hintText: 'time'
+ ),
+ validator: (String? value) {
+ if (value == null || value.isEmpty) {
+ return 'Please enter a value';
+ } else {
+ try {
+ _time = _formatter.parse(value);
+ } on FormatException {
+ return 'date format: ${_formatter.pattern}';
+ }
+ }
+ return null;
+ },
+ );
+ } else {
+ return const SizedBox.shrink();
}
}
- return null;
- },
),
TextFormField(
decoration: const InputDecoration(
lib/screens/settings.dart
@@ -22,6 +22,14 @@ class SettingsScreen extends StatelessWidget {
SettingsSection(
title: const Text('layout'),
tiles: <SettingsTile>[
+ SettingsTile.switchTile(
+ initialValue: settings.allowManualTimeInput,
+ onToggle: (value) {
+ settings.allowManualTimeInput = value;
+ },
+ leading: const Icon(Icons.auto_mode),
+ title: const Text('allow manual time input')
+ ),
SettingsTile.switchTile(
initialValue: settings.followSystemDarkMode,
onToggle: (value) {