| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
| |
Consolidate timer ringing logic and use Timer component as single source
of truth for expired state.
|
| |
|
|
|
| |
This prevents the motorController from buzzing infinitely while the
watch is sleeping.
|
| |
|
|
|
|
|
|
|
| |
The timer app issues a short buzz once and then disappears. There is no
trace left that the timer finished or how long ago. This change makes
the motor start ringing and presents a timer counter.
The timer stops buzzing after 10 seconds, and finally resets after
1 minute.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit 0aead42fdf51 ("navigation: Add is available (#1847)") added the
ability to draw the app icon in grey and in a disabled state when some
prerequisits were not met. Only the Navigation app was using this mechanism
due to its icons being stored in the external memory and possibly missing.
Commit 63e0c4f4efb0 ("Application selection at build time") broke this by
always setting the state as true:
for (const auto& userApp : userApps) {
apps[i++] = Screens::Tile::Applications {userApp.icon, userApp.app, true};
}
Fix this by creating an isAvailable() strcuture in the app classes, similar
to how the Watchfaces handle the same problem of checking availability.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
A list of "user applications" is built at compile time. It contains all the info needed to create the application at runtime (ptr to a create() function) and to display the app in the application menu. All applications declare a TypeTrait with these information.
When a new app must be loaded, DisplayApp first check if this app is a System app (in which case it creates it like it did before). If it's not a System app, it looks for the app in the list of User applications and creates it if it found it.
Those changes allow to more easily add new app and to select which app must be built into the firmware.
Switch to C++20 (and fix a few issues in SpiMaster.cpp and Watchdog.cpp.
|
| | |
|
| | |
|
| |
|
|
|
| |
Don't enable coding conventions from unrelated projects. Only enable
generic checks.
|
| |
|
|
|
|
|
|
| |
* Reset timer by long pressing on the button
* Consider press_lost as released
Otherwise the bar would keep increasing if the finger slid off the
button
|
| |
|
|
| |
Custom fonts, twelve hour mode and Value changed callback.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
When the screen switches, the full screen needs to be refreshed for the
hardware scrolling to work. This was enforced with backgroundLabels, but
is simpler to do with a rounder function.
|
| |
|
|
|
|
| |
correctly after a full refresh (HW scrolling transition).
Code cleaning and rename methods.
|
| |
|
|
|
|
|
| |
Don't use relative imports like `../foo.h` as those depend on the
relative position of both files. Rather than that use imports relative
to the `src` directory, which explicitly is part of the include
directories.
|
| | |
|
|
|
* built timer app
* Style improvements
* making sure buttons stay hidden when the app is reopened and reappear after the timer runs out
* more sensible calculations of time deltas. eliminated that mysterious scaling factor
* changing the timer icon
|