main, more work on getting variables to flow properly and minutes to not take up space when the switch has text.
This commit is contained in:
1 parent
b649c9c1e7
commit
b02a6ff80a
1 file changed
+41
-21
+41
-21
@@ -124,17 +124,17 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
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<HomeScreen> {
|
||||
}
|
||||
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<HomeScreen> {
|
||||
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<HomeScreen> {
|
||||
children: [
|
||||
if (!_alarmEnabled)
|
||||
Expanded(
|
||||
flex: _validTime ? 6 : 4,
|
||||
child: TextField(
|
||||
controller: _minutesController,
|
||||
keyboardType: TextInputType.number,
|
||||
@@ -565,31 +571,45 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
} 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,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
Reference in new issue
Block a user