Ignore:
Timestamp:
07/19/06 04:38:21 (18 years ago)
Author:
Nicholas Riley
Message:

Handle time changes by rescheduling (if it's time-based) or just updating the fire time (if it's interval-based, since those use real time when active).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/hiptop/pester/net/sabi/pester/Alarms.java

    r250 r255  
    22
    33import java.util.Comparator;
     4import danger.app.Application;
    45import danger.app.DataStore;
     6import danger.app.Event;
    57import danger.util.StdActiveList;
    68
     
    1012
    1113    private static Alarms sAlarmList = null;
    12     private static DataStore sDataStore;
     14    private static Listener sListener;
     15
     16    private DataStore mDataStore;
    1317
    1418    private Alarms() {
    15         sDataStore = DataStore.createDataStore("alarms", true /* auto sync */);
     19        mDataStore = DataStore.createDataStore("alarms", true /* auto sync */);
    1620    }
    1721
    1822    public static Alarms getList() {
    19         if (sAlarmList == null)
     23        if (sAlarmList == null) {
    2024            sAlarmList = new Alarms();
     25            sListener = new Listener();
     26            Application.registerForEvent(sListener, Event.EVENT_TIME_CHANGED);
     27        }
    2128        return sAlarmList;
    2229    }
     
    3744    }
    3845    */
     46
     47    static class Listener extends danger.app.Listener
     48        implements danger.util.ActiveList.ForEach {
     49       
     50        public void receive(Object item) {
     51            ((Alarm)item).timeChanged();
     52        }
     53
     54        public boolean receiveEvent(Event e) {
     55            if (e.type == Event.EVENT_TIME_CHANGED) {
     56                // XXX do we get this when the time zone changes?
     57                Alarms.getList().forEach(this);
     58                return true;
     59            }
     60            return super.receiveEvent(e);
     61        }
     62    }
    3963}
     64
Note: See TracChangeset for help on using the changeset viewer.