diff --git a/astrid/plugin-src/com/todoroo/astrid/alarms/AlarmDetailExposer.java b/astrid/plugin-src/com/todoroo/astrid/alarms/AlarmDetailExposer.java index 092dc7c22..b3c584136 100644 --- a/astrid/plugin-src/com/todoroo/astrid/alarms/AlarmDetailExposer.java +++ b/astrid/plugin-src/com/todoroo/astrid/alarms/AlarmDetailExposer.java @@ -60,9 +60,9 @@ public class AlarmDetailExposer extends BroadcastReceiver { if(nextTime == -1) return null; - CharSequence durationString = DateUtils.getRelativeDateTimeString(context, - nextTime, DateUtils.MINUTE_IN_MILLIS, DateUtils.WEEK_IN_MILLIS, - DateUtils.FORMAT_ABBREV_ALL); + CharSequence durationString = DateUtils.formatDateTime(context, nextTime, + DateUtils.FORMAT_NUMERIC_DATE | DateUtils.FORMAT_SHOW_TIME | + DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_NO_YEAR); return context.getString(R.string.alarm_ADE_detail, durationString); } finally { cursor.close(); diff --git a/astrid/plugin-src/com/todoroo/astrid/alarms/AlarmService.java b/astrid/plugin-src/com/todoroo/astrid/alarms/AlarmService.java index 9284fb8b4..770a1b88d 100644 --- a/astrid/plugin-src/com/todoroo/astrid/alarms/AlarmService.java +++ b/astrid/plugin-src/com/todoroo/astrid/alarms/AlarmService.java @@ -25,6 +25,7 @@ import com.todoroo.astrid.data.Task; import com.todoroo.astrid.reminders.Notifications; import com.todoroo.astrid.reminders.ReminderService; import com.todoroo.astrid.service.MetadataService; +import com.todoroo.astrid.utility.Constants; /** * Provides operations for working with alerts @@ -77,7 +78,10 @@ public class AlarmService { metadata.add(item); } - return service.synchronizeMetadata(taskId, metadata, Metadata.KEY.eq(AlarmFields.METADATA_KEY)) > 0; + boolean changed = service.synchronizeMetadata(taskId, metadata, Metadata.KEY.eq(AlarmFields.METADATA_KEY)) > 0; + if(changed) + scheduleAlarms(taskId); + return changed; } // --- alarm scheduling @@ -99,7 +103,7 @@ public class AlarmService { * @return todoroo cursor. PLEASE CLOSE THIS CURSOR! */ private TodorooCursor getAlarmsForTask(long taskId) { - return PluginServices.getMetadataService().query(Query.select(AlarmFields.TIME). + return PluginServices.getMetadataService().query(Query.select(Metadata.TASK, AlarmFields.TIME). join(Join.inner(Task.TABLE, Metadata.TASK.eq(Task.ID))). where(Criterion.and(TaskCriteria.isActive(), MetadataCriteria.byTaskAndwithKey(taskId, AlarmFields.METADATA_KEY)))); @@ -129,8 +133,8 @@ public class AlarmService { * Schedules alarms for a single task * @param task */ - public void scheduleAlarms(Task task) { - TodorooCursor cursor = getAlarmsForTask(task.getId()); + public void scheduleAlarms(long taskId) { + TodorooCursor cursor = getAlarmsForTask(taskId); try { Metadata alarm = new Metadata(); for(cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { @@ -138,7 +142,7 @@ public class AlarmService { scheduleAlarm(alarm); } } catch (Exception e) { - // suppress + Log.i("astrid-alarms", "Error scheduling alarm", e); //$NON-NLS-1$ //$NON-NLS-2$ } finally { cursor.close(); } @@ -173,7 +177,8 @@ public class AlarmService { if(time == 0 || time == NO_ALARM) am.cancel(pendingIntent); else if(time > DateUtilities.now()) { - Log.e("Astrid", "Alarm (" + taskId + ", " + type + + if(Constants.DEBUG) + Log.e("Astrid", "Alarm (" + taskId + ", " + type + ") set for " + new Date(time)); am.set(AlarmManager.RTC_WAKEUP, time, pendingIntent); } diff --git a/astrid/plugin-src/com/todoroo/astrid/reminders/ReminderService.java b/astrid/plugin-src/com/todoroo/astrid/reminders/ReminderService.java index 05596f3f7..9b837d2e4 100644 --- a/astrid/plugin-src/com/todoroo/astrid/reminders/ReminderService.java +++ b/astrid/plugin-src/com/todoroo/astrid/reminders/ReminderService.java @@ -356,7 +356,7 @@ public final class ReminderService { time = DateUtilities.now() + 5000L; if(Constants.DEBUG) - Log.e("Astrid", "Alarm (" + task.getId() + ", " + type + + Log.e("Astrid", "Reminder (" + task.getId() + ", " + type + ") set for " + new Date(time)); am.set(AlarmManager.RTC_WAKEUP, time, pendingIntent); } diff --git a/astrid/res/values/strings-alarms.xml b/astrid/res/values/strings-alarms.xml index fc17e705e..338e19112 100644 --- a/astrid/res/values/strings-alarms.xml +++ b/astrid/res/values/strings-alarms.xml @@ -11,7 +11,7 @@ Add an Alarm - Alarm %s + Alarm: %s