diff --git a/lib/main.dart b/lib/main.dart index 9be6c3c..983eb80 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -121,13 +121,19 @@ class _HomeScreenState extends State { Future _loadPrefs() async { final prefs = await SharedPreferences.getInstance(); setState(() { - _latController.text = prefs.getDouble('lat').toString(); - _lngController.text = prefs.getDouble('lng').toString(); - _sunsetController.text = prefs.getString('sunset_time').toString(); - _alarmEnabled = prefs.getBool('alarm_enabled') ?? false; + 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(); - _plural = prefs.getString('plural').toString(); + + _alarmEnabled = prefs.getBool('alarm_enabled') ?? false; _validTime = prefs.getBool('valid_time') ?? false; }); if (_alarmEnabled && _sunsetController.text.isNotEmpty) { @@ -208,7 +214,10 @@ class _HomeScreenState extends State { } catch (e) { _showSnack('Network Error: $e'); } finally { - setState(() => _loading = false); + setState(() { + _loading = false; + _validTime = true; + }); } if (_alarmEnabled) { @@ -377,7 +386,9 @@ class _HomeScreenState extends State { } String? _validateTime(String? value) { - _validTime = false; + setState(() { + _validTime = false; + }); if (value == null || !RegExp(r'^\d{2}:\d{2}$').hasMatch(value)) { return 'Use HH:MM Format'; } @@ -385,7 +396,9 @@ 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; + setState(() { + _validTime = true; + }); return null; // valid }