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
Line 
1package net.sabi.pester;
2
3import danger.app.Application;
4import danger.app.Event;
5import danger.app.IPCMessage;
6import danger.ui.Layout;
7import danger.ui.TextField;
8import danger.ui.TextInputAlertWindow;
9import danger.ui.ScreenWindow;
10import danger.ui.StaticText;
11import danger.util.DEBUG;
12import java.util.Stack;
13
14public class Pester extends Application implements Resources, Commands {
15 private static ScreenWindow sAlarmListWindow;
16 private static Stack sAlarmStack;
17
18 public Pester() {
19 sAlarmListWindow = (ScreenWindow)getResources().getScreen(ID_ALARM_LIST_SCREEN);
20 sAlarmListWindow.show();
21 sAlarmStack = new Stack();
22 }
23
24 public boolean receiveEvent(Event e) {
25 switch (e.type) {
26 case Event.EVENT_ALARM:
27 Alarm alarm = (Alarm)e.argument;
28 TextInputAlertWindow alert = getTextInputAlert(ID_ALARM_ALERT, this);
29 alert.setTitle(alarm.getDateTimeString());
30 alert.setMessage(alarm.getMessage());
31 alert.setShowTone(alarm.getAlert());
32 alert.disableButtonOnEmptyField(ID_SNOOZE_BUTTON, ID_SNOOZE_MINUTES);
33 alert.setShowCancel(false);
34 alert.show(TextInputAlertWindow.SYSTEM_ALERT_TYPE_ALARM);
35 sAlarmStack.push(alarm);
36 return true;
37 case EVENT_SET_ALARM:
38 AlarmSetDialog.getDialog().rescheduleAlarm((Alarm)sAlarmStack.pop());
39 return true;
40 case EVENT_SNOOZE_ALARM:
41 int snoozeMinutes =
42 Integer.parseInt(TextInputAlertWindow.
43 getTextFieldValue((IPCMessage)e.argument,
44 ID_SNOOZE_MINUTES));
45 ((Alarm)sAlarmStack.pop()).snoozeForMinutes(snoozeMinutes);
46 return true;
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.