From b02a6ff80a224649f6b9157e95f5f6f2292b3798 Mon Sep 17 00:00:00 2001 From: Hyperling Date: Tue, 29 Sep 2026 17:28:41 -0700 Subject: [PATCH] main, more work on getting variables to flow properly and minutes to not take up space when the switch has text. --- lib/main.dart | 62 ++++++++++++++++++++++++++++++++++----------------- 1 file changed, 41 insertions(+), 21 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 983eb80..9a45e73 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -124,17 +124,17 @@ class _HomeScreenState extends State { final lat = prefs.getDouble('lat').toString(); final lng = prefs.getDouble('lng').toString(); final sun = prefs.getString('sunset_time'); - final plu = prefs.getString('plural'); _latController.text = (lat == "null") ? "" : lat; _lngController.text = (lng == "null") ? "" : lng; _sunsetController.text = sun ?? ""; - _plural = plu ?? ""; _minutesBefore = prefs.getInt('minutes_before') ?? 30; _minutesController.text = _minutesBefore.toString(); _alarmEnabled = prefs.getBool('alarm_enabled') ?? false; _validTime = prefs.getBool('valid_time') ?? false; + + _calcPlural(); }); if (_alarmEnabled && _sunsetController.text.isNotEmpty) { _scheduleAlarm(); @@ -152,7 +152,6 @@ class _HomeScreenState extends State { } await prefs.setBool('alarm_enabled', _alarmEnabled); await prefs.setInt('minutes_before', _minutesBefore); - await prefs.setString('plural', _plural); await prefs.setBool('valid_time', _validTime); } @@ -402,6 +401,12 @@ class _HomeScreenState extends State { return null; // valid } + void _calcPlural() { + setState(() { + _plural = (_minutesBefore == 1) ? '' : 's'; + }); + } + @override Widget build(BuildContext context) { return Scaffold( @@ -548,6 +553,7 @@ class _HomeScreenState extends State { children: [ if (!_alarmEnabled) Expanded( + flex: _validTime ? 6 : 4, child: TextField( controller: _minutesController, keyboardType: TextInputType.number, @@ -565,31 +571,45 @@ class _HomeScreenState extends State { } else { _minuteErrorText = 'Invalid Minute Value'; } - _plural = (_minutesBefore == 1) ? '' : 's'; + _calcPlural(); }); }, ), ), + //Expanded( + // flex: 3, + // child: Center( + // child: + // _validTime ? Text("") : Text("Sunset Time Needed") , + // ), + //), + // --- Toggle --- Expanded( - child: - _validTime - ? SwitchListTile( - title: Text( - _alarmEnabled ? 'Sunset Alarm Enabled' : "", - ), - subtitle: Text( - _validTime - ? _alarmEnabled - ? '${_minutesBefore} Minute${_plural} Before @ $_alarmDisplayTime' - : "" - : "Add Time", - ), - value: _alarmEnabled, - onChanged: _toggleAlarm, - ) - : Center(child: Text("Sunset Time Invalid")), + flex: _validTime ? 7 : 5, + child: SwitchListTile( + title: Center( + child: Text( + _validTime + ? _alarmEnabled + ? "Sunset Alarm Enabled" + : "Enable" + : "Disabled", + ), + ), + subtitle: Center( + child: Text( + _validTime + ? _alarmEnabled + ? "${_minutesBefore} Minute${_plural} Before @ $_alarmDisplayTime" + : "Sunset Alarm" + : "Enter Time", + ), + ), + value: _validTime ? _alarmEnabled : false, + onChanged: _validTime ? _toggleAlarm : null, + ), ), ], ),