1.2.0 #6

Merged
me merged 18 commits from dev into main 2026-11-11 19:21:06 -07:00
Showing only changes of commit f0b723e158 - Show all commits
+27 -5
View File
@@ -88,7 +88,12 @@ class _HomeScreenState extends State<HomeScreen> {
String? _minuteErrorText;
bool _validTime = false;
static const _alarmId = 1001;
static int _alarmId = 20260000;
int dateAsId(DateTime d) => d.year * 10000 + d.month * 100 + d.day;
int todayAsId() {
return dateAsId(DateTime.now());
}
@override
void initState() {
@@ -99,7 +104,10 @@ class _HomeScreenState extends State<HomeScreen> {
// Reschedule alarm any time one goes off.
Alarm.ringing.listen((AlarmSet alarmSet) {
for (final alarm in alarmSet.alarms) {
if (alarm.id == _alarmId) _scheduleAlarm();
if (alarm.id == todayAsId()) {
_scheduleAlarm();
break;
}
}
});
}
@@ -249,7 +257,9 @@ class _HomeScreenState extends State<HomeScreen> {
alarmTime = alarmTime.add(const Duration(days: 1));
}
_debug("_scheduleAlarm, alarmTime=" + alarmTime.toIso8601String());
_debug("_scheduleAlarm, alarmTime=${alarmTime.toIso8601String()}");
_alarmId = dateAsId(alarmTime);
_debug("_alarmId=$_alarmId");
if (Platform.isLinux) {
// Linux: use a Timer (app must stay open)
@@ -338,6 +348,16 @@ class _HomeScreenState extends State<HomeScreen> {
icon: 'ic_notification',
),
);
// Skip if tomorrow's alarm already exists.
final existing = await Alarm.getAlarm(_alarmId);
if (existing == settings) {
_debug(
"Alarm already exists, skipping schedule. ${settings.toString()}",
);
return;
}
await Alarm.set(alarmSettings: settings);
}
// End Alarm Method ***/
@@ -363,11 +383,13 @@ class _HomeScreenState extends State<HomeScreen> {
} else if (Platform.isAndroid) {
// Notification Method
if (ANDROID_USE_NOTIF) {
await _notifications.cancel(id: _alarmId);
//await _notifications.cancel(id: _alarmId);
await _notifications.cancelAll();
}
// Alarm Method
if (ANDROID_USE_ALARM) {
await Alarm.stop(_alarmId);
//await Alarm.stop(_alarmId);
await Alarm.stopAll();
}
}
_showSnack('Alarm Cancelled');