diff --git a/lib/main.dart b/lib/main.dart index 3fa9123..706dba3 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -79,6 +79,7 @@ class _HomeScreenState extends State { String? _sunsetErrorText; String? _minuteErrorText; + bool _validTime = false; static const _alarmId = 1001; @@ -362,6 +363,7 @@ class _HomeScreenState extends State { } String? _validateTime(String? value) { + _validTime = false; if (value == null || !RegExp(r'^\d{2}:\d{2}$').hasMatch(value)) { return 'Use HH:MM Format'; } @@ -369,6 +371,7 @@ class _HomeScreenState extends State { final m = int.parse(value.substring(3, 5)); if (h > 23) return 'Hour Must Be 0–23'; if (m > 59) return 'Minute Must Be 0–59'; + _validTime = true; return null; // valid } @@ -545,19 +548,15 @@ class _HomeScreenState extends State { Expanded( child: SwitchListTile( //title: const Text('Enable Sunset Alarm'), - title: Text(_alarmEnabled ? 'Sunset Alarm Enabled' : ''), + title: Text(_alarmEnabled ? 'Sunset Alarm Enabled' : ""), subtitle: Text( _alarmEnabled ? '${_minutesBefore} Minute${_plural} Before @ $_alarmDisplayTime' - : (_sunsetController.text == "" - ? "Time Missing" - : ""), + : "", ), - value: - _sunsetController.text != "" ? _alarmEnabled : false, + value: _validTime ? _alarmEnabled : false, // If _isDataLoaded is false, onChanged is null, disabling the switch - onChanged: - _sunsetController.text != "" ? _toggleAlarm : null, + onChanged: _validTime ? _toggleAlarm : null, ), ), ],