diff --git a/astrid/plugin-src/com/todoroo/astrid/alarms/AlarmService.java b/astrid/plugin-src/com/todoroo/astrid/alarms/AlarmService.java
index c9427e68d..316e8041b 100644
--- a/astrid/plugin-src/com/todoroo/astrid/alarms/AlarmService.java
+++ b/astrid/plugin-src/com/todoroo/astrid/alarms/AlarmService.java
@@ -44,6 +44,8 @@ public class AlarmService {
// --- data retrieval
+ public static final String IDENTIFIER = "alarms"; //$NON-NLS-1$
+
/**
* Return alarms for the given task. PLEASE CLOSE THE CURSOR!
*
@@ -73,6 +75,7 @@ public class AlarmService {
metadata.setValue(Alarm.TIME, alarm);
metadata.setValue(Alarm.TYPE, Alarm.TYPE_SINGLE);
service.save(metadata);
+ scheduleAlarm(metadata);
}
}
diff --git a/astrid/plugin-src/com/todoroo/astrid/core/PluginServices.java b/astrid/plugin-src/com/todoroo/astrid/core/PluginServices.java
index f5a1b0499..abc2052ae 100644
--- a/astrid/plugin-src/com/todoroo/astrid/core/PluginServices.java
+++ b/astrid/plugin-src/com/todoroo/astrid/core/PluginServices.java
@@ -3,6 +3,7 @@ package com.todoroo.astrid.core;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.service.ExceptionService;
+import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.service.AddOnService;
@@ -32,6 +33,9 @@ public final class PluginServices {
@Autowired
DialogUtilities dialogUtilities;
+ @Autowired
+ DateUtilities dateUtilities;
+
@Autowired
AddOnService addOnService;
@@ -68,4 +72,8 @@ public final class PluginServices {
public static DialogUtilities getDialogUtilities() {
return getInstance().dialogUtilities;
}
+
+ public static DateUtilities getDateUtilities() {
+ return getInstance().dateUtilities;
+ }
}
diff --git a/astrid/plugin-src/com/todoroo/astrid/reminders/Notifications.java b/astrid/plugin-src/com/todoroo/astrid/reminders/Notifications.java
index 4ef8ed559..41286fd7d 100644
--- a/astrid/plugin-src/com/todoroo/astrid/reminders/Notifications.java
+++ b/astrid/plugin-src/com/todoroo/astrid/reminders/Notifications.java
@@ -74,6 +74,8 @@ public class Notifications extends BroadcastReceiver {
String reminder;
if(type == ReminderService.TYPE_DUE || type == ReminderService.TYPE_OVERDUE)
reminder = getRandomReminder(r.getStringArray(R.array.reminders_due));
+ else if(type == ReminderService.TYPE_ALARM)
+ reminder = getRandomReminder(r.getStringArray(R.array.reminders_alarm));
else if(type == ReminderService.TYPE_SNOOZE)
reminder = getRandomReminder(r.getStringArray(R.array.reminders_snooze));
else if(Preferences.getBoolean(R.string.p_rmd_nagging, true))
diff --git a/astrid/res/values/strings-alarms.xml b/astrid/res/values/strings-alarms.xml
index f6072d70b..e5afdd3b7 100644
--- a/astrid/res/values/strings-alarms.xml
+++ b/astrid/res/values/strings-alarms.xml
@@ -9,8 +9,13 @@
Add an Alarm
+
+
+ Next Alarm %s
-
- Alarm!
+
+
+ - Alarm!
+
diff --git a/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java b/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java
index 501c587b8..33d5c4176 100644
--- a/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java
+++ b/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java
@@ -39,6 +39,7 @@ import com.todoroo.andlib.service.ExceptionService;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.andlib.utility.SoftHashMap;
import com.todoroo.astrid.activity.TaskEditActivity;
+import com.todoroo.astrid.alarms.AlarmDetailExposer;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.DetailExposer;
import com.todoroo.astrid.api.Filter;
@@ -85,6 +86,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
new RepeatDetailExposer(),
new NoteDetailExposer(),
new MilkDetailExposer(),
+ new AlarmDetailExposer(),
};
private static int[] IMPORTANCE_COLORS = null;
diff --git a/astrid/src/com/todoroo/astrid/dao/TaskDao.java b/astrid/src/com/todoroo/astrid/dao/TaskDao.java
index 51e05543f..bf35b44a1 100644
--- a/astrid/src/com/todoroo/astrid/dao/TaskDao.java
+++ b/astrid/src/com/todoroo/astrid/dao/TaskDao.java
@@ -17,7 +17,6 @@ import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Functions;
import com.todoroo.andlib.utility.DateUtilities;
-import com.todoroo.astrid.alarms.AlarmService;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria;
import com.todoroo.astrid.model.Task;
@@ -217,10 +216,8 @@ public class TaskDao extends GenericDao {
private void afterSave(Task task, ContentValues values) {
if(values.containsKey(Task.COMPLETION_DATE.name) && task.isCompleted())
afterComplete(task, values);
- else {
+ else
ReminderService.getInstance().scheduleAlarm(task);
- AlarmService.getInstance().scheduleAlarms(task);
- }
Astrid2TaskProvider.notifyDatabaseModification();
ContextManager.getContext().startService(new Intent(ContextManager.getContext(),