summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Thompson <daniel@redfelineninja.org.uk>2021-06-20 09:21:25 (GMT)
committerDaniel Thompson <daniel@redfelineninja.org.uk>2021-06-20 09:21:25 (GMT)
commit2a1ac322799ce0ae549110ec96dbb2caa28cf6d0 (patch)
treed96609ec2e79aa57f180f9fccd620d4ae46ab046
parent3ea061508ff356c5df6fbad9b69e6e41fbe3eefa (diff)
all clocks: Add a preview() method ready for a watch face chooser
One benefit from wasp-os' dirt simple drawing model is that it is very easy for apps to provide full screen previews of themselves. Add this for all clocks ready for us to add a watch face chooser application. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
-rw-r--r--wasp/apps/chrono.py5
-rw-r--r--wasp/apps/clock.py5
-rw-r--r--wasp/apps/dual_clock.py5
-rw-r--r--wasp/apps/fibonacci_clock.py5
-rw-r--r--wasp/apps/template.py12
-rw-r--r--wasp/apps/word_clock.py5
6 files changed, 37 insertions, 0 deletions
diff --git a/wasp/apps/chrono.py b/wasp/apps/chrono.py
index 3eae3a1..4496a83 100644
--- a/wasp/apps/chrono.py
+++ b/wasp/apps/chrono.py
@@ -50,6 +50,11 @@ class ChronoApp():
"""Periodic callback to update the display."""
self._draw()
+ def preview(self):
+ """Provide a preview for the watch face selection."""
+ wasp.system.bar.clock = False
+ self._draw(True)
+
def _draw(self, redraw=False):
"""Draw or lazily update the display.
diff --git a/wasp/apps/clock.py b/wasp/apps/clock.py
index 5c7854d..cdf465e 100644
--- a/wasp/apps/clock.py
+++ b/wasp/apps/clock.py
@@ -59,6 +59,11 @@ class ClockApp():
"""Periodic callback to update the display."""
self._draw()
+ def preview(self):
+ """Provide a preview for the watch face selection."""
+ wasp.system.bar.clock = False
+ self._draw(True)
+
def _draw(self, redraw=False):
"""Draw or lazily update the display.
diff --git a/wasp/apps/dual_clock.py b/wasp/apps/dual_clock.py
index 39bb8e0..76fea2c 100644
--- a/wasp/apps/dual_clock.py
+++ b/wasp/apps/dual_clock.py
@@ -82,6 +82,11 @@ class DualClockApp():
"""Periodic callback to update the display."""
self._draw()
+ def preview(self):
+ """Provide a preview for the watch face selection."""
+ wasp.system.bar.clock = False
+ self._draw(True)
+
def _draw(self, redraw=False):
"""Draw or lazily update the display.
diff --git a/wasp/apps/fibonacci_clock.py b/wasp/apps/fibonacci_clock.py
index 0f9ebfd..7124ebe 100644
--- a/wasp/apps/fibonacci_clock.py
+++ b/wasp/apps/fibonacci_clock.py
@@ -76,6 +76,11 @@ class FibonacciClockApp():
def tick(self, ticks):
self._draw()
+ def preview(self):
+ """Provide a preview for the watch face selection."""
+ wasp.system.bar.clock = False
+ self._draw(True)
+
def _draw(self, redraw=False):
"""Draw or lazily update the display."""
draw = wasp.watch.drawable
diff --git a/wasp/apps/template.py b/wasp/apps/template.py
index e611545..3027599 100644
--- a/wasp/apps/template.py
+++ b/wasp/apps/template.py
@@ -63,6 +63,18 @@ class TemplateApp():
"""Notify the application the device is waking up."""
pass
+ def preview(self):
+ """Provide a preview for the watch face selection.
+
+ preview() must be implemented by watch face applications because it
+ is called by the watch face selector. When called the application should
+ redraw the screen as through it was the foreground() application. The
+ application will not be active after the preview.
+
+ Other applications should not implement this entry point.
+ """
+ pass
+
def press(self, button, state):
"""Notify the application of a button-press event."""
draw = wasp.watch.drawable
diff --git a/wasp/apps/word_clock.py b/wasp/apps/word_clock.py
index a7f2d63..6bc3d45 100644
--- a/wasp/apps/word_clock.py
+++ b/wasp/apps/word_clock.py
@@ -55,6 +55,11 @@ class WordClockApp():
"""Periodic callback to update the display."""
self._draw()
+ def preview(self):
+ """Provide a preview for the watch face selection."""
+ wasp.system.bar.clock = False
+ self._draw(True)
+
def _draw(self, redraw=False):
"""Draw or lazily update the display.