diff --git a/astrid/plugin-src/com/todoroo/astrid/reminders/Notifications.java b/astrid/plugin-src/com/todoroo/astrid/reminders/Notifications.java index b0d82d878..8a25b7c35 100644 --- a/astrid/plugin-src/com/todoroo/astrid/reminders/Notifications.java +++ b/astrid/plugin-src/com/todoroo/astrid/reminders/Notifications.java @@ -265,6 +265,23 @@ public class Notifications extends BroadcastReceiver { notificationManager.notify(notificationId, notification); } + /** + * Schedules alarms for a single task + * + * @param shouldPerformPropertyCheck + * whether to check if task has requisite properties + */ + public static void cancelNotifications(long taskId) { + if(notificationManager == null) + synchronized(Notifications.class) { + if(notificationManager == null) + notificationManager = new AndroidNotificationManager( + ContextManager.getContext()); + } + + notificationManager.cancel((int)taskId); + } + // --- notification manager public static void setNotificationManager( diff --git a/astrid/src/com/todoroo/astrid/dao/TaskDao.java b/astrid/src/com/todoroo/astrid/dao/TaskDao.java index 613ec1658..5ef9e3c65 100644 --- a/astrid/src/com/todoroo/astrid/dao/TaskDao.java +++ b/astrid/src/com/todoroo/astrid/dao/TaskDao.java @@ -21,6 +21,7 @@ import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria; import com.todoroo.astrid.model.Task; import com.todoroo.astrid.provider.Astrid2TaskProvider; +import com.todoroo.astrid.reminders.Notifications; import com.todoroo.astrid.reminders.ReminderService; import com.todoroo.astrid.utility.Preferences; import com.todoroo.astrid.widget.TasksWidget; @@ -245,6 +246,8 @@ public class TaskDao extends GenericDao { Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_EVENT_TASK_COMPLETED); broadcastIntent.putExtra(AstridApiConstants.EXTRAS_TASK_ID, task.getId()); context.sendOrderedBroadcast(broadcastIntent, null); + + Notifications.cancelNotifications(task.getId()); } }