| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
|
|
|
|
| |
In the screens that use `DisplayApp *app` and pass it to a child item,
or use the reference just in the constructor. Afterwards the `app`
member is not used. So remove it from the private member variables.
Completely remove `app` parameter from `SettingDisplay` constructor as
it is unused.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* AlarmController: Add saving alarm time to file
Save the set alarm time to the SPI NOR flash, so it does not reset to
the default value when the watch resets, e.g. due to watchdog timeout
or reflashing of a new version of InfiniTime.
Just like the `Settings.h` `LoadSettingsFromFile()` the previous alarm
at boot (if available) and `SaveSettingsToFile()` the current alarm when
the `Alarm.h` screen is closed (only if the settings have changed).
The alarm-settings file is stored in `.system/alarm.dat`. The `.system`
folder is created if it doesn't yet exist.
Fixes: https://github.com/InfiniTimeOrg/InfiniTime/issues/1330
* alarmController: close .system dir after usage
Close the `lfs_dir` object for the `.system` dir after usage. Otherwise
on the second changed alarm the system will lockup because the `.system`
dir is already open and was never closed.
---------
Co-authored-by: Galdor Takacs <g@ldor.de>
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Set `running` to false to flag end of watchface when there are no more
notifications left to display.
I found it slightly annoying that dismissing all notifications leaves me with
a "No notification to display" message. Instead of dismissing to a relatively
useless message, dismiss to watchface.
|
| | |
|
| | |
|
| |
|
|
| |
This is needed since a new memory chip will be used in future batches of PineTimes.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
of the radio has actually changed. (#2037)
This fixes an issue where the BLE connected logo would disappear when opening and closing the BLE setting (without changing it) while InfiniTime was already connected to a companion app.
Co-authored-by: JustScott <development@justscott.me>
|
| | |
|
| | |
|
| |
|
|
| |
This ensures temperatures are correctly aligned with one another
|
| | |
|
| | |
|
| |
|
|
|
| |
This allows it to be used outside of the current datetime context and
makes it consistent with the MonthShortToStringLow function.
|
| | |
|
| |
|
| |
Co-authored-by: FintasticMan <finlay.neon.kid@gmail.com>
|
| |
|
|
|
|
| |
The weather widget is too high and could overlap the status icons.
Moving it to match the rest of the face avoids this issue and makes it
align with the rest of the theme.
|
| |
|
| |
If weather is available, display the cloud icon and temperature.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add new App `Dice.h` to randomly roll the dice(s).
The number of dice can range from 1-9 (default 1), and the sides can
range from d2-d99 (default d2).
To have a haptic feedback we make Dice vibrate on roll.
Regarding the use of C++ `<random>` library:
There are known problems with `rand()` and `srand()` (see https://en.cppreference.com/w/cpp/numeric/random/rand)
and the `<random>` library is preferred for this reason. The function used from
`<random>` also avoids a very rare bias that would occur using `rand()` and modulo,
when `RAND_MAX` is not a multiple of `d` and the initially generated number falls in
the last "short" segment. This commit also updates the seed to derive entropy
(via `seed_seq`) from a mix of the system tick count and the x,y,z components of the
PineTime motion controller -- taking inspiration from and with credit to @w4tsn
(https://github.com/InfiniTimeOrg/InfiniTime/pull/1199)
Thanks for suggestions:
* in Dice, when rolling 1d2, also show "HEADS" or "TAILS" -- suggestion by @medeyko
* ui adjustments and result realignment -- suggestion by @Boteium
---------
Co-authored-by: NeroBurner <pyro4hell@gmail.com>
Co-authored-by: Riku Isokoski <riksu9000@gmail.com>
Co-authored-by: Paul Weiß <45500341+Poohl@users.noreply.github.com>
Co-authored-by: FintasticMan <finlay.neon.kid@gmail.com>
|
| | |
|
| |
|
|
|
| |
Since returning a valid weather is always considered an updated value,
if the current weather is empty, the face will attempt to display the
temperature and icon as empty values, rather than clearing the labels.
|
| |
|
|
|
|
| |
The list of watch face to build into the firmware is now set by CMake (-DENABLE_WATCHFACES).
Fix SettingWatchFace : convert to index to/from WatchFace when needed.
|
| |
|
|
|
| |
Instead of truncating. This fixes the displayed temperature being 1
degree lower than expected when using GadgetBridge.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Fix include path since last rebase.
|
| |
|
|
| |
Move displayapp/Apps.h into a header only library (to make the integration easier in InfiniSim.
|
| |
|
|
| |
Fix code formatting.
|
| |
|
|
| |
Store temperatures as int16_t (instead of uint8_t previously). The temperature is expressed in °C * 100.
|
| |
|
|
| |
Move the function GetIcon that converts SimpleWeatherService::Icons to char (symbol) into a new header file so that it can be used by other apps and companion apps.
|
| |
|
|
| |
Rename Symbols::cloud_meatball to Symbols::cloudMeatball.
|
| |
|
|
|
| |
Remove unused Weather debug app.
Fix formatting in SimpleWeatherService.cpp.
|
| |
|
|
|
|
|
| |
Add missing icons (heavy clouds, thunderstorm, snow).
Remove unneeded comparison operator (!=), improve conversion of Timestamp and MessageType, order includes.
Fix typo in documentation.
Remove not related change in StopWatch.
|
| |
|
|
| |
Fix recovery firmware and code formatting.
|
| |
|
|
|
|
|
|
|
|
| |
This new implementation of the weather feature provides a new BLE API and a new weather service.
The API uses a single characteristic that allows companion apps to write the weather conditions (current and forecast for the next 5 days).
The SimpleWeather service exposes those data as std::optional fields.
This new implementation replaces the previous WeahterService.
The API is documented in docs/SimpleWeatherService.md.
|
| |
|
|
| |
Watch faces can now be selected at buid time. It's implemented in a similar way than the selection of user apps, using a list of watch face description that is generated at build time (consteval, constexpr)
|
| |
|
|
| |
Fix 'nScreens' calculation in ApplicationList so that we can build the project with zero user app selected.
|
| | |
|
| | |
|
| |
|
|
| |
so that it's just as long as with the hour.
|