From 294de734cf4a56b6760db01c201dce74faf352b4 Mon Sep 17 00:00:00 2001 From: Tim Su Date: Sun, 8 Aug 2010 17:35:29 -0700 Subject: [PATCH] Task detail for alarms --- .../com/todoroo/astrid/alarms/AlarmService.java | 3 +++ .../com/todoroo/astrid/core/PluginServices.java | 8 ++++++++ .../com/todoroo/astrid/reminders/Notifications.java | 2 ++ astrid/res/values/strings-alarms.xml | 9 +++++++-- astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java | 2 ++ astrid/src/com/todoroo/astrid/dao/TaskDao.java | 5 +---- 6 files changed, 23 insertions(+), 6 deletions(-) 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(),