Commit graph

2302 commits

Author SHA1 Message Date
Dāvis Mošenkovs e03414ce6d
Setting to disable DFU and FS access (#1891)
Some checks failed
Build and push Docker image / build (push) Has been cancelled
CI / build-firmware (push) Has been cancelled
CI / build-simulator (push) Has been cancelled
CI / get-base-ref-size (push) Has been cancelled
CI / Compare build size (push) Has been cancelled
* Expose SystemTask dependency controllers

Expose NotificationManager and Settings for use by the feature in next commit.

This is a memory efficient way for accessing SystemTask dependencies from
controllers that have SystemTask injected as a dependency.
Looks like each direct dependency injection uses 4 bytes RAM.
As InfiniTime is close to running out of RAM (using 16 more bytes causes build
to fail with "ld: region RAM overflowed with stack") it might be helpful to use
this approach more.

* Add setting to disable DFU and FS access
2025-09-03 20:50:13 +02:00
Heiko Stuebner 9afc23cba9 navigation: fix greying out the app icon if not enabled
Commit 0aead42fdf ("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 63e0c4f4ef ("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.
2025-07-03 13:19:56 +01:00
Titus 250e7a7032
Dark App Launcher Tiles (#2294) 2025-06-29 17:39:48 +02:00
Titus c3afbc59ce
(small) Music App Redesign (#2292) 2025-06-29 16:43:41 +02:00
mark9064 c1b9967d92 Analog face constexpr fix 2025-06-28 18:30:54 +01:00
mark9064 b3f4831e54 Initialise DisplayApp components in DisplayApp context 2025-06-28 16:33:49 +01:00
mark9064 343962da5d Disable legacy FreeRTOS functions 2025-06-27 20:53:26 +01:00
Eshe 4517fb8c4b
Pride flag watchface (#2201) 2025-06-19 17:53:45 +01:00
Owen from Canada 3fc00f80db
Ignore npm files (#2313) 2025-06-18 13:17:57 +02:00
zyphlar 1340f56344
Set LF-only (\n) line endings for .sh files to fix #1905 (#2181) 2025-06-16 22:31:28 +01:00
Titus b2d0e04e42
BatteryInfo App Redesign: Fixup (#2310)
* remove leading zeros from battery percentage
* add correct colors matching the battery icon color thresholds
2025-06-12 09:13:53 +02:00
lmamane 4f426f00a8
set static text as static text (#2312)
and save a few bytes of heap memory

Co-authored-by: Lionel Elie Mamane <lionel@mamane.lu>
2025-06-12 09:12:11 +02:00
Reinhold Gschweicher 85a0542d93 DisplayApp: use std::ranges function where possible
Instead of raw for loops use `std::ranges::transform` where possible.
And also use `std::ranges::find_if` instead of `std::find_if`.
2025-05-30 22:57:12 +01:00
kon-foo 8423ed675b fixed libpango1.0-dev install 2025-05-30 19:52:23 +01:00
NeroBurner 22cb7e3388
CI: use bash for get-base-ref-size job (#2305)
Same change as done in c3295d6d2a
But for get-base-ref-size job

The variable substitution I introduced are bash features. So they don't work with sh.

Update the size job to use `bash` instead of `sh` as shell
2025-05-29 09:36:50 +02:00
NeroBurner c3295d6d2a
CI: use bash for output-sizs-job
Firmware build works. But the build size job afterwards fails.
The firmware build uses `shell: bash --noprofile --norc -e -o pipefail {0}` as shell.

The size job uses `shell: sh -e {0}`

The variable substitution I introduced are bash features. So they don't work with sh.

Update the size job to use `bash` instead of `sh` as shell
2025-05-27 23:26:43 +02:00
NeroBurner 6f2a661a36
docker: fix NRF_SDK download and subsequent build.sh (#2299)
The upstream NRF-SDK download url and zip archive filename changed,
which was fixed with https://github.com/InfiniTimeOrg/InfiniTime/pull/2270

But the archive contents stayed the same, with the "old" folder name.

After #2270 we have basically the same docker-container as before the PR,
but the `GetNrfSdk` function of the `build.sh` script is called again during
firmware build time as the expected foldername for the SDK isn't the same as
the zip filename:

```sh
[ ! -d "$TOOLS_DIR/$NRF_SDK_VER" ] && GetNrfSdk
```

Then during the build the `buils.sh` script tries to execute `GetNrfSdk` again,
which fails as the files already exist resulting in the following error:

```
replace /opt/nRF5_SDK_15.3.0_59ac345/components/802_15_4/api/HAL/hal_atomic.h? [y]es, [n]o, [A]ll, [N]one, [r]ename:  NULL
```

Fix this by reverting the `NRF_SDK_VER` to the folder name in the zip
archive and by some character replacement generate the download URL from
the above (the download is in lower-case without the `_` and `.`
characters).

Furthermore add safeguards to check after the `GetNrfSdk` call if the
expected folder is really created. Then we have an error early during
container image creation if the contents of the zip-archive are
unexpected.
2025-05-27 22:56:10 +02:00
Steve Amor 9fb35cc073 Refactors watch faces. Replace lv_tick_get() with xTaskGetTickCount() 2025-05-23 17:46:14 +01:00
Darius Arnold 248a6aea87
Fix nRF SDK download links (#2270)
nRF has moved the download to a new location- Update the build script to fetch from the same URL the download website currently provides.
2025-05-21 21:17:42 +01:00
Jean-François Milants 0880b08546 Fix conflict in NotificationManager 2025-05-21 20:53:47 +02:00
Julian Vos e27e51d36a fix: fix short ref not getting set in github builds 2025-05-21 20:18:23 +02:00
Matt Zrinsky fb70b538e4 Fix about screen vertical centering.
There was a newline at the end of the last line on the third screen,
which was causing the label to not be centered vertically.
Removing it fixes the centering.
2025-05-19 21:49:46 +02:00
Titus bb8923b56e
Center text on timer button (#2229) 2025-05-16 23:01:19 +02:00
Max Friedrich 4e1ee90286
Remove the vibration while charging (#1768)
* DisplayApp.cpp: Remove the vibration from OnChargingEvent

This fixes a bug where the vibration interupts the physical connection with the charger and therefore triggers a new charging event and vibration, ending in a cycle of vibrations while charging.

* remove OnChargingEvent message from DisplayApp

---------

Co-authored-by: minacode <minamoto9@web.de>
2025-05-16 21:29:06 +02:00
Titus 85be83beab
Add background color to progress bar when flashing firmware (#2237) 2025-05-15 20:46:25 +01:00
Max Friedrich 5b20e8e2ba
Simple calculator (#1483)
Co-authored-by: minacode <minamoto9@web.de>
Co-authored-by: Finlay Davidson <finlay.davidson@coderclass.nl>
Co-authored-by: SuIông N. <Boteium@users.noreply.github.com>
Co-authored-by: mark9064 <30447455+mark9064@users.noreply.github.com>
2025-05-12 23:32:03 +01:00
Max Jakobitsch 6a6981c912 Revert "docs: add git config items to docs"
This reverts commit 4066cc03004c89a7ac4d5a7a327729184ecac7b6.
2025-03-21 17:36:47 +01:00
Max Jakobitsch 483435ae3d docs: add git config items to docs 2025-03-21 17:36:47 +01:00
Max-Julian Jakobitsch 3659e9a4ba chore: remove defunct .gitconfig
not actually used by git, see https://git-scm.com/docs/git-config and https://stackoverflow.com/q/18329621
2025-03-21 17:36:47 +01:00
Lukas H. 445aa1da83 Update Apps.md 2025-03-21 17:33:50 +01:00
Lionel Elie Mamane e06dd405bc make cmake command coherent with previous documentation 2025-03-21 17:32:07 +01:00
lmamane c0638c6007
work around g++ version 12, 13 and 14 spurious warning (#2158)
which is an error since we compile with -Werror

Co-authored-by: Lionel Elie Mamane <lionel@mamane.lu>
2025-03-14 13:10:41 +01:00
Titus 30e56834d5
BatteryInfo App Redesign using arc (#2236)
Redesign BatteryInfo App using an Arch widget instead of a bar.

The colors I used are as follows:
- Discharging (default): green
- Charging: lime
- Battery full: blue
- Battery low (<10%): red
2025-03-14 13:07:46 +01:00
Steveis 728da0f4a0
Fix Infineat crash when charging with AOD (#2256)
Optimise the battery animation to not use 100% CPU (which causes DisplayApp to spin forever with AOD)
(DisplayApp also needs to be fixed in the future so it cannot spin infinitely)
2025-02-26 23:16:20 +00:00
Max Jakobitsch 993118a3bc
Fix EOL related build issues on Windows (#2077)
Prevent line endings from getting normalised to CRLF

Co-authored-by: NeroBurner <pyro4hell@gmail.com>
2025-02-11 23:43:10 +00:00
Titus d371ebc9e2
Improve no notification text (#2238)
Change the "No notification" text to "No notifications"
2025-02-10 19:28:20 +00:00
Felipe Martínez 7b39d81c8c
Add "Run on InfiniEmu" link to pull requests (#2150) 2025-01-28 19:57:07 +00:00
Jozef Mlich de87a0dd3d Fixes #2219: use artifact v4 instead of v3 2025-01-23 19:23:36 +00:00
ljahn dbe8820834
Alarm: Simplify alarm alerting screen (#2211)
Simplify alarm alerting screen and fix bug with
alerting on time value change

SetAlerting creates an lv_task to automatically call StopAlerting after one minute. This task will call an invalid function reference and lead to a crash under the following condition:

All exit paths but the time value change (so not considering this fix) call StopAlerting themselves, which also terminates the lv_task.
However, the value change callback only calls DisableAlarm, because its normal use case is for setting up an alarm, where you have to re-confirm enabling the alarm after every change you make.
DisableAlarm still sets isAlerting in the alarmController to false, probably because someone thought a currently alerting but also disabled alarm makes no sense, this was introduced in a0cd439.
That causes the destructor of Alarm to think there is nothing to do regarding the alerting when the alarm screen is dismissed.
Therefore it does not call StopAlerting and the lv_task is left with an invalid function pointer, because Alarm does not exist anymore once the lv_task finally goes to call the callback function
2025-01-21 09:10:41 +01:00
Jozef Mlich 3e23ee7c78 Show alarm controller state in status icon 2025-01-05 14:37:35 +01:00
Victor Kareh d69cfcfb13 weather: Fix inverted imperial forecast temperatures
When converting to imperial units, the min and max temperatures were
incorrectly inverted, causing confusion in the display.

Fixes https://github.com/InfiniTimeOrg/InfiniTime/issues/2183
2024-12-10 00:02:17 +01:00
Felipe Martínez b8c51abe69
Use all free RAM for FreeRTOS heap
* Use all free RAM for FreeRTOS heap
* Wrap newlib malloc and related functions
* Implement calloc
2024-12-09 00:10:09 +00:00
Jean-François Milants 2105a7b63d Set version to 1.15.0 2024-12-03 20:11:08 +01:00
Lionel Elie Mamane 79ee886904 spelling 2024-11-25 08:55:37 +01:00
Lionel Elie Mamane b1d70ae2ed remove unused include 2024-11-25 08:55:37 +01:00
xz-dev a77a3dcb8b cmake: fix python path with use multi-version python 2024-11-17 23:36:22 +00:00
mark9064 8aefa3b9a6 Ignore old GoToRunning messages 2024-11-17 15:35:15 +01:00
febrezo 6c7eb6630e Fix git hash calculation with Docker build
Fix error when compiling the Pinetime using the Docker image.
If done with Docker, the container does not trust the /sources
folder, leading to a blank response of the command that grabs
the git commit `git rev-parse --short HEAD`.

```
fatal: detected dubious ownership in repository at '/sources'
To add an exception for this directory, call:

        git config --global --add safe.directory /sources
PROJECT_GIT_COMMIT_HASH_SUCCESS? 128

BUILD CONFIGURATION
-------------------
    * Mode : Release
    * Version : 1.3.0
    * Toolchain : /opt/gcc-arm-none-eabi-10.3-2021.10
    * GitRef(S) :
    * NRF52 SDK : /opt/nRF5_SDK_15.3.0_59ac345
    * Target device : PINETIME
    * Build DFU (using adafruit-nrfutil) : Enabled
    * Build resources : Enabled
```

If the `git config --global --add safe.directory /sources` is
added to the Dockerfile, the problem is solved and the hash is
added correctly.
2024-11-17 15:22:22 +01:00
Dom Rodriguez 4dd0d60eeb ci: Normalise slash-containing github.head_ref values
This fixes CI on #2121.

Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2024-11-17 15:13:38 +01:00
Jozef Mlich a2ced5659d Update Amazfish details in README.md
The openrepos contain obsolete version (description on the openrepos page says that). New SailfishOS version is in chum repo. Additionally, there is Ubuntu Touch and Flatpak version.
2024-11-17 00:10:20 +00:00