[DBus (name = "org.freesmartphone.Notification")]
public class AlarmNotification : Object {
public void Alarm () {
- clock.on_alarm();
+ clock.check_alarms();
}
}
// Ticks once a minute
public signal void minute_changed(long time, SourceType source);
+ public signal void schedule_changed();
public Clock()
{
//notification.Alarm += on_alarm;
}
+ public Alarm? next_alarm()
+ {
+ if (alarms == null)
+ return null;
+ return alarms.data;
+ }
+
public void schedule(Alarm a)
{
alarms.insert_sorted(a, alarm_compare);
- zavai.log.info("Next alarm: " + alarms.data.label + " at " + Time.local(alarms.data.deadline).to_string());
otimed_reschedule();
}
private void otimed_reschedule()
{
- stderr.printf("ALARM: %p BN %s\n", otimed_alarm, zavai.registry.bus_name);
+ zavai.log.info("No alarms left to reschedule");
if (alarms != null)
{
+ zavai.log.info("Scheduling next alarm: " + alarms.data.label + " at " + Time.local(alarms.data.deadline).to_string());
+
try {
otimed_alarm.ClearAlarm(zavai.registry.bus_name);
} catch (Error e) {
zavai.log.error("Cannot reschedule alarms: " + e.message);
}
}
- }
-
- public void on_alarm()
- {
-stderr.printf("ON ALARM\n");
- check_alarms();
+ schedule_changed();
}
public void check_alarms()