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>
It isn't possible to clear the action cache directly but we can change the
version number and adopt a new cache. Eventually the old (now unused
one) will be cleaned up.
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
.mpy files are micropython bytecode and should be ignored.
Now that user-defined apps are implemented, it's likely that .mpy files
will be present in apps/
Signed-off-by: Francesco Gazzetta <fgaz@fgaz.me>
The dictionary of strings was taking a lot of space, and is now replaced
by a binary tree flattened into a string plus a small loookup function.
Signed-off-by: Francesco Gazzetta <fgaz@fgaz.me>
Experimentally drop the HGAIN to x8. Currently the evidence base for
this change is a little weak but it doesn't seem to be *worse* than
what we have now. Therefore I hope the wasp-os users will forgive me
for using them as guinea pigs!
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
Currently --ota works "most of the time" but occasionally the OTA
fails to start. Let's give the reset an extra second to settle!
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
Currrently, gcc-11 users risk bricking their devices because to the
combination of a new optimization pass and some mistakes in the way
the Nordic Softdevice headers wrap the SD system calls.
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
When I created the weather app I didn't have GadgetBridge installed, so I tried to follow the protocol on the [espurino website](https://www.espruino.com/Gadgetbridge), but it wasn't very helpful and I made some mistakes. This commit should fix these mistakes to stop the weather app from crashing, and so it displays the correct values. I have also added a new settings option called "Units", where apps can see what units the user would prefer (metric/imperial).
Signed-off-by: Tait Berlette <54515877+taitberlette@users.noreply.github.com>
Testing has demonstrated that del self.x does not make the memory used to
store x available for garbage collection.
There is clearly an additional reference from another place. In fact
*after* del self.x then the memory can be made available for GC by
assignment (e.g. self.x = None). However I haven't found how to release
this reference and there is nothing in self.__dict__ that can help.
For now we'll use a twp-step process where we set the variable to None
before deleting it.
This has a big impact on memory usage. For Software it is almost 1k
(a.k.a. about 10% impact on free RAM).
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
Features:
* Multiple alarms (up to 4)
* Day of the week support
* One time alarms
* Snooze
Changes to wasp-os for app support:
* Added + and - to the 28pt and 36pt fonts
* Checkboxes now require a click on the body of the checkbox if there is no label
* Added a Toggle Button class that extends Button and stores a state like checkbox
Signed-off-by: Adam Blair <adampblair@protonmail.com>
Currently the final word of wrapped text will always appear as a single
word on its own line. Fix this by rearranging the break cases to avoid
searching for the most recent space when we get to the end of the text.
Fixes: #230
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
Reduce the number of applications imported by the manager and alter
the way applications are initially registered to allow main.py
complete control over the initial applications (but only if it wants
it).
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
This app is functional... although it lacking in almost every
costmetic way, from the icon to the main screen.
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
Many widgets adopted the _im(mutable) idiom to allow us to reduce the
RAM overhead of each widget. Where the immutable data considers entirely
of integers smaller than 256 then we can push this just a little further
by switching from a tuple to a bytes.
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
This is purely a refactoring for the purposes of code reuse. No change
of behaviour is expected.
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
Tested on Debian bullseye using wasp/requirements.txt in order to get
the latest version of click.
Fixes: #211
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
Currently the ChronoApp example code is both broken (missing apps. prefix)
and doesn't use the latest API for registering watch faces. Fix this.
Whilst here let's also provide an example for the DemoApp since that
is not included in the Software chooser.
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>