Commit Graph

2251 Commits

Author SHA1 Message Date
Lionel Elie Mamane
5ea9c5537e Weather: fix min and max temperature being switched 2024-11-16 23:53:33 +00:00
FintasticMan
f7c87a700d weather: Switch to std::optional for Forecast days
Also only iterate over the number of days actually in use, rather than
MaxNbForecastDays.
2024-11-04 21:22:38 +01:00
FintasticMan
e247bd7019 Switch to simpler temperature interface 2024-11-04 21:22:38 +01:00
FintasticMan
29ad09f4ef weather: Refactor temperature type for type safety
There is now a Temperature struct in the weather service, which holds
the internal representation. There is also a temperature struct in the
Applications namespace, which holds the temperature in either Celsius or
Fahrenheit.
2024-11-04 21:22:38 +01:00
Samuel Dorsaz
afeded0126 Update Date&Time settings label for "Date & Time" 2024-11-04 21:20:44 +01:00
mark9064
57b6db8b2a Remove OnTouchEvent 2024-10-27 19:51:01 +01:00
mark9064
0076962588 Unify touch panel handling 2024-10-27 19:51:01 +01:00
mark9064
e6ee548536 Process touch events only when awake 2024-10-27 19:51:01 +01:00
mark9064
1808634f0e Clear ongoing taps when going to sleep 2024-10-27 19:51:01 +01:00
Lionel Elie Mamane
cfaad261dc SimpleWeatherService #include <array>
not <vector> as that is what is actually used.
Fixes build failure
InfiniTime/src/components/ble/SimpleWeatherService.h:86:18: error: field ‘location’ has incomplete type ‘Pinetime::Controllers::SimpleWeatherService::Location’ {aka ‘std::array<char, 33>’
2024-10-27 18:27:03 +01:00
FintasticMan
f1651c8000 datetime: Set the default year to the year during compile 2024-10-27 17:01:07 +01:00
mark9064
8a2ee437f5 Restrict hardware reactivation when not sleeping 2024-10-27 16:56:47 +01:00
mark9064
06b721a71f Improve sleep time calculation docs 2024-10-27 16:56:47 +01:00
mark9064
771008495e Replace rounded div macro 2024-10-27 16:56:47 +01:00
mark9064
f032847ae1 Refactor into defined states 2024-10-27 16:56:47 +01:00
mark9064
97ba39988b 8hz idle 2024-10-27 16:56:47 +01:00
liamcharger
879bdccd92
README: Header redesign (#2032)
* Reformat README.md

* Update README.md

* Add files via upload

* Add files via upload

* Add new README.md header image

* Remove unnecessary <br> tag

* Scale watchface logo down; add downloads badge

* Remove unnecessary <br> tag

* Add <br> tag to maintain spacing consistency

* Remove incorrect link

* Add watchface logo with dark logo

* Replace logo image with dark version

* Add files via upload

* Add header image

* Fix row spacing in header image

* Remove unnecessary <br> tag

* Add corner radius to header image

* Add files via upload

* Update image background

* Add reference to InfiniTimeExplorer

* Remove unnecessary image

* Remove unnecessary image

* Remove unnecessary images

* Rename watchface_collage_no_shadow.png to watchface_collage.png

* Update header image URL

* Remove unnecessary <br> tag

* SPI transaction hooks

* Remove task to notify

* Refactor display WriteToRam

* Use functional abstraction for hooks

* Refactor lambdas

* Avoid storing lambda

* Rename to pre-transaction hook

* Use FreeRTOS delay instead of spinning the CPU

* Apply display driver datasheet delays

* Move includes back

* Include task header (Fixes sim)

* Make chime vibrate twice

* Remove commit from main

* README: improve wording

* Add bootloader to DeviceInformationService.cpp

* Add bootloader to DeviceInformationService.h

* Revert "Add bootloader to DeviceInformationService.h"

This reverts commit f3f0fd568d96dea1ebd30529b4b8b6d5f4d5444b.

* Revert "Add bootloader to DeviceInformationService.cpp"

This reverts commit 35570edafab1b061442ae89b01a2ced8b9a812bd.

* Delete doc/logo/watchface_collage.png

* Add files via upload

* Delete doc/logo/watchface_collage.png

* Add files via upload

* Replace collage with correct image

---------

Co-authored-by: mark9064 <30447455+mark9064@users.noreply.github.com>
2024-10-23 19:00:48 +02:00
NeroBurner
8598142c27
Remove unused submodule QCBOR (#2138)
The submodule isn't used anymore. Remove the submodule reference
completely.
2024-10-09 20:26:08 +02:00
NeroBurner
a2356f2f4a
MusicService: add missing includes for TickType_t and xTaskGetTickCount (#2130)
Add `FreeRTOS.h` include for the directly used data type `TickType_t` in the header
and the function `xTaskGetTickCount` from FreeRTOS's `task.h`
2024-09-29 21:10:32 +02:00
NeroBurner
3db4e012ce
Remove unused pointer to DisplayApp member variables (#2125)
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.
2024-09-29 19:39:14 +02:00
NeroBurner
a0cd439efc
Alarm persist to flash (#1367)
* 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>
2024-09-28 08:14:08 +02:00
Reinhold Gschweicher
997e4cee8c Hrs3300: fix includes for std::begin/std::end
Fix for Hrs3300 PR about Atomic HRS reads:
https://github.com/InfiniTimeOrg/InfiniTime/pull/1845

We use `std::begin` and `std::end`, but we don't include one of the
headers that define those functions.
See https://en.cppreference.com/w/cpp/iterator/begin for a list of
headers that define `std::begin` and `std::end`.

Starting with GCC 14 this leads to a compilation error presumably
because they cleaned up their headers.

Fix code by inlcuding `<iterator>`
2024-09-22 16:15:48 +02:00
mark9064
ad3bf49c7b
Atomic HRS reads (#1845)
- Combine the reading of all `HRS3300` registers into one I2C read so data is not partial
- Downsizes both HRS and ALS to 16bit as the sensor does not generate larger than
  16bit values in its current configuration
  - Increasing the resolution by 1 bit doubles the sensor acquisition time,
    since we are already at 10Hz we are never going to use a higher resolution
  - The PPG algorithm buffers for ALS/HRS are already 16bit anyway
- Remove functions for setting gain / drive that are unused throughout the codebase
- Calculate constants with constexpr
2024-09-22 00:29:15 +02:00
mark9064
7ca0418c82 Refactor doNotGoToSleep to a wakelock counter 2024-09-21 22:45:57 +02:00
mark9064
c3d05901a0 Refactor SystemTask state handling for resilience
State transitions now happen immediately where possible
This simplifies state management in general,
and prevents bugs such as the chime issue from occurring in the first place
2024-09-21 21:08:07 +02:00
mark9064
b3756e45fa Remove unused method declarations 2024-09-21 21:08:07 +02:00
Eli Tan
a266202831
notifications: Dismiss to watchface when empty (#1716)
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.
2024-09-18 22:31:15 +02:00
mark9064
c8236afbef Restrict debugging monitor to debug builds 2024-09-14 12:10:55 +02:00
mark9064
5040733a97 Clean unused DisplayApp messages 2024-09-14 12:10:14 +02:00
mark9064
fd019c7aad Use DirtyValue for timer 2024-09-14 11:20:47 +02:00
mark9064
975bfc5420 Size optimise NRF SDK build 2024-09-14 11:19:34 +02:00
Victor Kareh
2625ed39e5 DisplayApp: Go to clock on sleep if no app loaded
When turning off the screen, if there is no actual app loaded (i.e. we
are still in the Launcher, Notifications, QuickSettings, or Settings
screens) we should just reload the Clock app directly.
2024-08-22 17:34:25 +02:00
Derry Tutt
a3dbcd62f6
Documentation improvements (#2091)
Add documentation about watch faces and applications.
Update getting started documentation.

Co-authored-by: tituscmd <154823939+tituscmd@users.noreply.github.com>
2024-08-18 16:18:15 +02:00
mark9064
4fddf93114 Advertise HR service 2024-08-18 12:00:13 +02:00
Derry Tutt
83922fb3de Remove space before colon 2024-08-18 11:58:56 +02:00
Felipe Martínez
95917c65a5 Update main.yml 2024-08-18 11:55:03 +02:00
Jean-François Milants
3a0d673df4 Display the SPI flash JEDEC IDs in SystemInformation.
This is needed since a new memory chip will be used in future batches of PineTimes.
2024-08-05 20:34:41 +02:00
mark9064
53dc9dafe7 aod: simplify AOD disablement based on notification status 2024-08-05 20:32:43 +02:00
mark9064
a407902b06 aod: avoid spinning DisplayApp under high LVGL load 2024-08-05 20:32:43 +02:00
mark9064
3e8accde69 aod: run LVGL task handler until all work finished 2024-08-05 20:32:43 +02:00
mark9064
2bb611db8e aod: constant frequency idle frames 2024-08-05 20:32:43 +02:00
mark9064
ef88e8165c aod: porch control: 2Hz idle + 75Hz on 2024-08-05 20:32:43 +02:00
mark9064
da9ab4a7b4 aod: lower lcd voltage 2024-08-05 20:32:43 +02:00
John Crawford
0bcd7e0009 aod: lower voltage going to the display 2024-08-05 20:32:43 +02:00
mark9064
bf69e0dcc5 aod: fix flashlight brightness restore 2024-08-05 20:32:43 +02:00
mark9064
947c4f5067 aod: fix brightness getting stuck high 2024-08-05 20:32:43 +02:00
John Crawford
0960d67001 aod: lower refresh rate when always on 2024-08-05 20:32:43 +02:00
John Crawford
5385f7e275 aod: switch to 8 colors when always on 2024-08-05 20:32:43 +02:00
John Crawford
e884b053d3 aod: disable while in notification sleep 2024-08-05 20:32:43 +02:00
John Crawford
85a2181b64 aod: integrate with display timeout 2024-08-05 20:32:43 +02:00