diff --git a/lib/main.dart b/lib/main.dart index 5947572..7123802 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -66,6 +66,9 @@ class _HomeScreenState extends State { int _minutesBefore = 30; bool _loading = false; + String? _sunsetErrorText = null; + String? _minuteErrorText = null; + static const _alarmId = 1001; @override @@ -426,40 +429,46 @@ class _HomeScreenState extends State { // --- Minutes before --- Row( children: [ - const Text('Minutes before: '), - SizedBox( - width: 80, - child: TextField( - controller: _minutesController, - keyboardType: TextInputType.number, - decoration: const InputDecoration( - border: OutlineInputBorder(), + if (!_alarmEnabled) + Expanded( + child: TextField( + controller: _minutesController, + keyboardType: TextInputType.number, + decoration: InputDecoration( + border: OutlineInputBorder(), + labelText: 'Minutes Before Sunset', + errorText: _minuteErrorText, + ), + onChanged: (v) { + final val = int.tryParse(v); + setState(() { + if (val != null) { + _minuteErrorText = null; + _minutesBefore = val; + } else { + _minuteErrorText = 'Invalid Minute Value'; + } + }); + }, ), - onChanged: (v) { - final val = int.tryParse(v); - if (val != null && val >= 0) { - _minutesBefore = val; - } else { - _showSnack('Invalid Minute Value'); - } - }, + ), + + // --- Toggle --- + Expanded( + child: SwitchListTile( + //title: const Text('Enable Sunset Alarm'), + title: Text(_alarmEnabled ? 'Sunset Alarm Enabled' : ''), + subtitle: Text( + _alarmEnabled + ? 'Will alert ${_minutesBefore} min before sunset. ($_alarmDisplayTime)' + : '', + ), + value: _alarmEnabled, + onChanged: _toggleAlarm, ), ), ], ), - const SizedBox(height: 24), - - // --- Toggle --- - SwitchListTile( - title: const Text('Enable Sunset Alarm'), - subtitle: Text( - _alarmEnabled - ? 'Will alert ${_minutesBefore} min before sunset. ($_alarmDisplayTime)' - : 'Alarm is off', - ), - value: _alarmEnabled, - onChanged: _toggleAlarm, - ), ], ), ),