Alarm: swap stop and snooze controls

It was too easy to accidentally stop the alarm by touching the screen,
either by moving around or by trying to press the side button to snooze.

Snoozing instead of stopping is better than the opposite because it
poses no risk of missing the alarm, so we swap the controls to:

touch -> snooze
press -> stop

Signed-off-by: Francesco Gazzetta <fgaz@fgaz.me>
This commit is contained in:
Francesco Gazzetta 2022-01-17 18:50:55 +01:00 committed by Daniel Thompson
parent 4b7cf88576
commit 5f28d05cc0

View file

@ -147,14 +147,12 @@ class AlarmApp:
def press(self, button, state): def press(self, button, state):
""""Notify the application of a button press event.""" """"Notify the application of a button press event."""
if self.page == _RINGING_PAGE:
self._snooze()
wasp.system.navigate(wasp.EventType.HOME) wasp.system.navigate(wasp.EventType.HOME)
def swipe(self, event): def swipe(self, event):
""""Notify the application of a swipe event.""" """"Notify the application of a swipe event."""
if self.page == _RINGING_PAGE: if self.page == _RINGING_PAGE:
self._silence_alarm() self._snooze()
elif self.page > _HOME_PAGE: elif self.page > _HOME_PAGE:
self._save_alarm() self._save_alarm()
self._draw() self._draw()
@ -164,7 +162,7 @@ class AlarmApp:
def touch(self, event): def touch(self, event):
"""Notify the application of a touchscreen touch event.""" """Notify the application of a touchscreen touch event."""
if self.page == _RINGING_PAGE: if self.page == _RINGING_PAGE:
self._silence_alarm() self._snooze()
elif self.page > _HOME_PAGE: elif self.page > _HOME_PAGE:
if self.hours_wid.touch(event) or self.min_wid.touch(event): if self.hours_wid.touch(event) or self.min_wid.touch(event):
return return
@ -239,11 +237,13 @@ class AlarmApp:
draw.fill() draw.fill()
draw.set_font(fonts.sans24) draw.set_font(fonts.sans24)
draw.string("Alarm", 0, 150, width=240) draw.string("Alarm", 0, 150, width=240)
draw.string("Touch to snooze", 0, 180, width=240)
draw.blit(icon, 73, 50) draw.blit(icon, 73, 50)
draw.line(35, 1, 35, 239) draw.line(35, 1, 35, 239)
draw.string('Z', 10, 80) draw.string('S', 10, 65)
draw.string('z', 10, 110) draw.string('t', 10, 95)
draw.string('z', 10, 140) draw.string('o', 10, 125)
draw.string('p', 10, 155)
def _draw_edit_page(self): def _draw_edit_page(self):
draw = wasp.watch.drawable draw = wasp.watch.drawable
@ -315,12 +315,6 @@ class AlarmApp:
now = wasp.watch.rtc.get_localtime() now = wasp.watch.rtc.get_localtime()
alarm = (now[0], now[1], now[2], now[3], now[4] + 10, now[5], 0, 0, 0) alarm = (now[0], now[1], now[2], now[3], now[4] + 10, now[5], 0, 0, 0)
wasp.system.set_alarm(time.mktime(alarm), self._alert) wasp.system.set_alarm(time.mktime(alarm), self._alert)
def _silence_alarm(self):
mute = wasp.watch.display.mute
mute(True)
self._draw()
mute(False)
wasp.system.navigate(wasp.EventType.HOME) wasp.system.navigate(wasp.EventType.HOME)
def _set_pending_alarms(self): def _set_pending_alarms(self):