Browse Source

Always restore Android notifications with a minimum date of now

This change prevents missing a notification that was scheduled to fire when the
device was off by re-registering it for right now. This matches the behaviour on
iOS.
Brandon Evans 12 years ago
parent
commit
bb4070dd40
1 changed files with 10 additions and 0 deletions
  1. 10 0
      src/android/Restore.java

+ 10 - 0
src/android/Restore.java

@@ -54,6 +54,16 @@ public class Restore extends BroadcastReceiver {
         for (String alarmId : alarmIds) {
             try {
                 JSONArray args  = new JSONArray(alarms.getString(alarmId, ""));
+                
+                /* If this notification was registered for a time when the
+                 * device was off then change the date to now to ensure that no
+                 * notifications are missed
+                 */
+                Date now = new Date();
+                if (now.after(new Date(args.optLong("date") * 1000))) {
+                    args.put("date", (now.getTime() / 1000));
+                }
+
                 Options options = new Options(context).parse(args.getJSONObject(0));
 
                 LocalNotification.add(options);