source: trunk/hiptop/pester/net/sabi/pester/Pester.java@ 288

Last change on this file since 288 was 288, checked in by Nicholas Riley, 18 years ago

Nicer rescheduling support; cancel reschedule should only be supported for repeating alarms (for non-repeating ones, you can only discard).

File size: 1.7 KB
RevLine 
[237]1package net.sabi.pester;
2
3import danger.app.Application;
[242]4import danger.app.Event;
[287]5import danger.app.IPCMessage;
6import danger.ui.Layout;
7import danger.ui.TextField;
8import danger.ui.TextInputAlertWindow;
[237]9import danger.ui.ScreenWindow;
[287]10import danger.ui.StaticText;
[242]11import danger.util.DEBUG;
12import java.util.Stack;
[237]13
14public class Pester extends Application implements Resources, Commands {
[242]15 private static ScreenWindow sAlarmListWindow;
16 private static Stack sAlarmStack;
17
[237]18 public Pester() {
[242]19 sAlarmListWindow = (ScreenWindow)getResources().getScreen(ID_ALARM_LIST_SCREEN);
20 sAlarmListWindow.show();
21 sAlarmStack = new Stack();
[237]22 }
23
[242]24 public boolean receiveEvent(Event e) {
25 switch (e.type) {
26 case Event.EVENT_ALARM:
27 Alarm alarm = (Alarm)e.argument;
[287]28 TextInputAlertWindow alert = getTextInputAlert(ID_ALARM_ALERT, this);
[278]29 alert.setTitle(alarm.getDateTimeString());
[242]30 alert.setMessage(alarm.getMessage());
[244]31 alert.setShowTone(alarm.getAlert());
[287]32 alert.disableButtonOnEmptyField(ID_SNOOZE_BUTTON, ID_SNOOZE_MINUTES);
33 alert.setShowCancel(false);
34 alert.show(TextInputAlertWindow.SYSTEM_ALERT_TYPE_ALARM);
[242]35 sAlarmStack.push(alarm);
36 return true;
[287]37 case EVENT_SET_ALARM:
[288]38 AlarmSetDialog.getDialog().rescheduleAlarm((Alarm)sAlarmStack.pop());
[287]39 return true;
40 case EVENT_SNOOZE_ALARM:
[288]41 int snoozeMinutes =
42 Integer.parseInt(TextInputAlertWindow.
43 getTextFieldValue((IPCMessage)e.argument,
44 ID_SNOOZE_MINUTES));
[287]45 ((Alarm)sAlarmStack.pop()).snoozeForMinutes(snoozeMinutes);
46 return true;
[242]47 case EVENT_DISMISS_ALARM:
48 ((Alarm)sAlarmStack.pop()).dismiss();
49 return true;
50 }
51 return super.receiveEvent(e);
52 }
53}
Note: See TracBrowser for help on using the repository browser.