Commit Graph

1769 Commits

Author SHA1 Message Date
Willy-JL 02d642745d Merge remote-tracking branch 'ofw/dev' into mntm-dev 2025-04-19 04:44:58 +01:00
Anna Antonenko 5b911f5405 RC fixes (#4192)
* cli_shell: fix FL-3983

* fix formatting and submodules

* loader: fix FL-3986

* fix submodules

---------

Co-authored-by: hedger <hedger@users.noreply.github.com>
2025-04-18 16:41:13 +04:00
WillyJL c420cbb1a5 Desktop: Fix freeze on boot if PIN set (#4193) 2025-04-18 05:52:15 +01:00
Willy-JL 2583b19c50 Merge branch 'fix/pin-lock-frozen-boot' into mntm-dev 2025-04-18 05:46:40 +01:00
Willy-JL e11c946ed6 Desktop: Fix freeze on boot if PIN set 2025-04-18 05:42:44 +01:00
Willy-JL b7cc3c627c Merge remote-tracking branch 'ofw/dev' into mntm-dev 2025-04-16 06:11:46 +01:00
Anna Antonenko 34a3222ec4 [FL-3979] USB-UART bridge fix (#4189)
* cli_vcp: make enable/disable requests synchronous

* usb_uart_bridge: open and close vcp record once
2025-04-16 04:20:31 +01:00
Willy-JL c2dbdb5dd5 Loader: Fix event edge cases, fixes Apps hang 2025-04-15 04:05:52 +01:00
Alexander Bays 16fb7e44df GUI: Checkerboard overlay behind popup elements (#380)
* GUI: Checkerboard overlay behind popup elements

Adds setting 'Popup Overlay' (default ON) which draws a checkerboard pattern behind popups, like the Archive actions menu, keypad/pin lock modal, and the varitemlist locked message. Gives the illusion of separation from the popup element and the background content and is an aesthetic improvement.

* Refactor

* Update changelog

---------

Co-authored-by: Willy-JL <49810075+Willy-JL@users.noreply.github.com>
2025-04-13 03:59:28 +01:00
Willy-JL f7da27f62c Loader: Share ViewHolder / Loading with LoaderMenu --nobuild 2025-04-13 02:37:04 +01:00
Willy-JL 49d7ce7349 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2025-04-12 10:36:13 +01:00
WillyJL 868eb10381 SDK: Fix missing RECORD_CLI define (#4185)
* SDK: Fix missing RECORD_CLI define

* sdk: added compatibility `cli.h` header

* cli: updated porting comments

---------

Co-authored-by: hedger <hedger@nanode.su>
2025-04-12 07:21:39 +04:00
Anna Antonenko e1bccf66b3 Fix NULL dereference in CLI completions (#4184)
* cli_completions: fix null dereference

* cli: mark free_blocks as parallel safe

* codeowners: add me to co-owners of cli
2025-04-11 23:38:28 +01:00
Anna Antonenko 096c088bf1 vcp, cli: Handle Tx/Rx events before Connect/Disconnect + extra fixes (#4181)
* cli_vcp: handle tx/rx before connext/disconnect

* cli_vcp: disable trace

* cli_perf: advanced error reporting

* cli_vcp: reset tx flag directly in event handler

* fix formatting

* cli_vcp: make tx flag volatile

* storage_settings: fix scene ids

* cli_shell: add safety check to set_prompt

* cli_registry: move from bptree to dict, fix memory leak

* cli_vcp: go back to message queue for event signaling

* loader: move BeforeLoad event even earlier

* fix formatting
2025-04-11 14:53:10 +04:00
Anna Antonenko 3d02063bce fbt: Deterministic STARTUP order & additional checks (#4179)
* unit_tests: clear startup order

* fam: ensure unique STARTUP order

* fbt: warn on same .order values within a group leading to non-determinitic builds

* fbt: better formatting for app order warning

---------

Co-authored-by: hedger <hedger@nanode.su>
2025-04-07 16:45:09 +04:00
Anna Antonenko eb0f5ef8c0 [FL-3947] Pinning of settings options (#4077)
* feat: pinning settings in favorites

* include archive in unit tests fw

* change settings icon

* update text with suggestions from the ui team

* Small touch of constness

---------

Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: hedger <hedger@nanode.su>
2025-04-07 03:17:58 +04:00
Anna Antonenko 6b5d006690 [FL-3953] Application chaining (#4105)
* feat: app chaining

* add `launch_current_app_after_deferred`, remove `get_referring_application`

* fix naming

* new api

* fix f18

* fix deferred launches after errors

* fix: memory leak

* Updater: MIN_GAP_PAGES = 0

* loader: loader_get_application_launch_path doc

* loader: fix freeze

* loader: reject mlib, reduce code size

* loader: generic synchronous call, reduce size

* loader: reject furi_string, reduce size

* apps: debug: removed order field from manifests since it is no longer meaningful

---------

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
Co-authored-by: hedger <hedger@nanode.su>
2025-04-05 20:22:05 +04:00
Anna Antonenko 7192c9e68b [FL-3965] Separate cli_shell into toolbox (#4175)
* cli_shell: separate into toolbox

* fix: cmd flags

* fix formatting

* cli: increase default stack depth

* cli_shell: fix loader lock logic

* cli: fix command flags

* fix f18

* speaker_debug: fix

* cli_registry: fix docs

* ufbt: rename cli target back

* cli: rename app and record

* cli: fix and simplify help command

* cli_master_shell: fix ext commands

* fix formatting

* cli: rename master to main

* fix formatting

---------

Co-authored-by: hedger <hedger@users.noreply.github.com>
2025-04-05 02:58:58 +04:00
Willy-JL e7fd9a43cc CLI: Fix VCP with lock on boot + allow locked RPC 2025-04-04 14:57:46 +01:00
Willy-JL 81581c79b5 Spring cleaning 2025-04-04 13:18:36 +01:00
Willy-JL 7e3a65dfd3 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2025-04-04 11:51:56 +01:00
Anna Antonenko 5dcf6b55ef [FL-3928, FL-3929] CLI commands in fals and threads (#4116)
* feat: FuriThread stdin

* ci: fix f18

* feat: stdio callback context

* feat: FuriPipe

* POTENTIALLY EXPLOSIVE pipe welding

* fix: non-explosive welding

* Revert welding

* docs: furi_pipe

* feat: pipe event loop integration

* update f18 sdk

* f18

* docs: make doxygen happy

* fix: event loop not triggering when pipe attached to stdio

* fix: partial stdout in pipe

* allow simultaneous in and out subscription in event loop

* feat: vcp i/o

* feat: cli ansi stuffs and history

* feat: more line editing

* working but slow cli rewrite

* restore previous speed after 4 days of debugging 🥲

* fix: cli_app_should_stop

* fix: cli and event_loop memory leaks

* style: remove commented out code

* ci: fix pvs warnings

* fix: unit tests, event_loop crash

* ci: fix build

* ci: silence pvs warning

* feat: cli gpio

* ci: fix formatting

* Fix memory leak during event loop unsubscription

* Event better memory leak fix

* feat: cli completions

* Merge remote-tracking branch 'origin/dev' into portasynthinca3/3928-cli-threads

* merge fixups

* temporarily exclude speaker_debug app

* pvs and unit tests fixups

* feat: commands in fals

* move commands out of flash, code cleanup

* ci: fix errors

* fix: run commands in buffer when stopping session

* speedup cli file transfer

* fix f18

* separate cli_shell into modules

* fix pvs warning

* fix qflipper refusing to connect

* remove temp debug logs

* remove erroneous conclusion

* Fix memory leak during event loop unsubscription

* Event better memory leak fix

* unit test for the fix

* improve thread stdio callback signatures

* pipe stdout timeout

* update api symbols

* fix f18, formatting

* fix pvs warnings

* increase stack size, hope to fix unit tests

* cli completions

* more key combos

* commands in fals

* move commands out of flash

* ci: fix errors

* speedup cli file transfer

* merge fixups

* fix f18

* cli: revert flag changes

* cli: fix formatting

* cli, fbt: loopback perf benchmark

* thread, event_loop: subscribing to thread flags

* cli: signal internal events using thread flags, improve performance

* fix f18, formatting

* event_loop: fix crash

* storage_cli: increase write_chunk buffer size again

* cli: explanation for order=0

* thread, event_loop: thread flags callback refactor

* cli: increase stack size

* cli: rename cli_app_should_stop -> cli_is_pipe_broken_or_is_etx_next_char

* cli: use plain array instead of mlib for history

* cli: prepend file name to static fns

* cli: fix formatting

* cli_shell: increase stack size

* cli_shell: give up pipe to command thread

* fix formatting

* fix: format

* fix merge

* fix. merge.

* cli_shell: fix detach ordering

* desktop: record_cli -> record_cli_vcp

* cli: fix spelling, reload/remove ext cmds on card mount/unmount

* cli: fix race conditions and formatting

* scripts: wait for CTS to go high before starting flipper

* scripts: better race condition fix

* REVERT THIS: test script race condition fix

* Revert "REVERT THIS: test script race condition fix"

This reverts commit 3b028d29b07212755872c5706c8c6a58be551636.

* REVERT THIS: test script fix

* scripts: sleep?

* cli: updated oplist for CliCommandTree

* Revert "REVERT THIS: test script fix"

This reverts commit e9846318549ce092ef422ff97522ba51916163be.

* cli: mention memory leak in FL ticket

---------

Co-authored-by: Georgii Surkov <georgii.surkov@outlook.com>
Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: hedger <hedger@nanode.su>
2025-04-03 21:39:53 +04:00
Anna Antonenko 24fbfd1663 [FL-3956] CLI autocomplete and other sugar (#4115)
* feat: FuriThread stdin

* ci: fix f18

* feat: stdio callback context

* feat: FuriPipe

* POTENTIALLY EXPLOSIVE pipe welding

* fix: non-explosive welding

* Revert welding

* docs: furi_pipe

* feat: pipe event loop integration

* update f18 sdk

* f18

* docs: make doxygen happy

* fix: event loop not triggering when pipe attached to stdio

* fix: partial stdout in pipe

* allow simultaneous in and out subscription in event loop

* feat: vcp i/o

* feat: cli ansi stuffs and history

* feat: more line editing

* working but slow cli rewrite

* restore previous speed after 4 days of debugging 🥲

* fix: cli_app_should_stop

* fix: cli and event_loop memory leaks

* style: remove commented out code

* ci: fix pvs warnings

* fix: unit tests, event_loop crash

* ci: fix build

* ci: silence pvs warning

* feat: cli gpio

* ci: fix formatting

* Fix memory leak during event loop unsubscription

* Event better memory leak fix

* feat: cli completions

* Merge remote-tracking branch 'origin/dev' into portasynthinca3/3928-cli-threads

* merge fixups

* temporarily exclude speaker_debug app

* pvs and unit tests fixups

* feat: commands in fals

* move commands out of flash, code cleanup

* ci: fix errors

* fix: run commands in buffer when stopping session

* speedup cli file transfer

* fix f18

* separate cli_shell into modules

* fix pvs warning

* fix qflipper refusing to connect

* remove temp debug logs

* remove erroneous conclusion

* Fix memory leak during event loop unsubscription

* Event better memory leak fix

* unit test for the fix

* improve thread stdio callback signatures

* pipe stdout timeout

* update api symbols

* fix f18, formatting

* fix pvs warnings

* increase stack size, hope to fix unit tests

* cli completions

* more key combos

* cli: revert flag changes

* cli: fix formatting

* cli, fbt: loopback perf benchmark

* thread, event_loop: subscribing to thread flags

* cli: signal internal events using thread flags, improve performance

* fix f18, formatting

* event_loop: fix crash

* storage_cli: increase write_chunk buffer size again

* cli: explanation for order=0

* thread, event_loop: thread flags callback refactor

* cli: increase stack size

* cli: rename cli_app_should_stop -> cli_is_pipe_broken_or_is_etx_next_char

* cli: use plain array instead of mlib for history

* cli: prepend file name to static fns

* cli: fix formatting

* cli_shell: increase stack size

* fix merge

* fix merge

* cli_shell: fix autocomplete up/down logic

* cli_shell: don't add empty line to history

* cli_shell: fix history recall

* cli_shell: find manually typed command in history

* cli_shell: different up/down completions navigation

* fix formatting

* cli_shell: fix memory leak

* cli_shell: silence pvs warning

* test_pipe: fix race condition

* storage_cli: terminate on pipe broken

---------

Co-authored-by: Georgii Surkov <georgii.surkov@outlook.com>
Co-authored-by: あく <alleteam@gmail.com>
2025-04-03 17:07:47 +04:00
Willy-JL 7f46fe5d5c Merge remote-tracking branch 'ofw/dev' into mntm-dev --nobuild 2025-04-03 06:19:15 +01:00
Willy-JL 858526cae1 Revert "[FL-3909] CLI improvements, part I (#3928)" --nobuild
This reverts commit 0f831412fa.

This was reverted by OFW right after it was made, back in October 2024.
They are now getting back to implementing these features differently.
Thus, a revert is in order. But neofetch is staying :)
2025-04-03 02:22:36 +01:00
Anna Antonenko 13333edd30 [FL-3954, FL-3955] New CLI architecture (#4111)
* feat: FuriThread stdin

* ci: fix f18

* feat: stdio callback context

* feat: FuriPipe

* POTENTIALLY EXPLOSIVE pipe welding

* fix: non-explosive welding

* Revert welding

* docs: furi_pipe

* feat: pipe event loop integration

* update f18 sdk

* f18

* docs: make doxygen happy

* fix: event loop not triggering when pipe attached to stdio

* fix: partial stdout in pipe

* allow simultaneous in and out subscription in event loop

* feat: vcp i/o

* feat: cli ansi stuffs and history

* feat: more line editing

* working but slow cli rewrite

* restore previous speed after 4 days of debugging 🥲

* fix: cli_app_should_stop

* fix: cli and event_loop memory leaks

* style: remove commented out code

* ci: fix pvs warnings

* fix: unit tests, event_loop crash

* ci: fix build

* ci: silence pvs warning

* feat: cli gpio

* ci: fix formatting

* Fix memory leak during event loop unsubscription

* Event better memory leak fix

* feat: cli completions

* Merge remote-tracking branch 'origin/dev' into portasynthinca3/3928-cli-threads

* merge fixups

* temporarily exclude speaker_debug app

* pvs and unit tests fixups

* feat: commands in fals

* move commands out of flash, code cleanup

* ci: fix errors

* fix: run commands in buffer when stopping session

* speedup cli file transfer

* fix f18

* separate cli_shell into modules

* fix pvs warning

* fix qflipper refusing to connect

* remove temp debug logs

* remove erroneous conclusion

* Fix memory leak during event loop unsubscription

* Event better memory leak fix

* unit test for the fix

* improve thread stdio callback signatures

* pipe stdout timeout

* update api symbols

* fix f18, formatting

* fix pvs warnings

* increase stack size, hope to fix unit tests

* cli: revert flag changes

* cli: fix formatting

* cli, fbt: loopback perf benchmark

* thread, event_loop: subscribing to thread flags

* cli: signal internal events using thread flags, improve performance

* fix f18, formatting

* event_loop: fix crash

* storage_cli: increase write_chunk buffer size again

* cli: explanation for order=0

* thread, event_loop: thread flags callback refactor

* cli: increase stack size

* cli: rename cli_app_should_stop -> cli_is_pipe_broken_or_is_etx_next_char

* cli: use plain array instead of mlib for history

* cli: prepend file name to static fns

* cli: fix formatting

* cli_shell: increase stack size

* cli: fix rpc lockup

* cli: better lockup fix

* cli: fix f18

* fix merge

---------

Co-authored-by: Georgii Surkov <georgii.surkov@outlook.com>
Co-authored-by: あく <alleteam@gmail.com>
2025-04-02 22:10:10 +04:00
hedger 5fcaef25b0 Stricter constness for const data (#4126)
* libs: stricter constness for saving RAM with .rodata section; fbt: sdk: fixed signature generation for nested const params

* hal: additional fixes for constness in USB subsystem

* debug apps: additional usb-related fixes

* mjs: more consts for token parser

* fatfs: const driver struct

* hal: more consts for ble & nfc vars

* hal: made FuriHalSpiBusHandle static

* hal: made FuriHalI2cBusHandle static

* usb: restored previous api

* linter fixes

* API fixes
2025-03-31 19:23:32 +04:00
WillyJL 3bd6ee03ef GUI: Fix widget text scroll with 256+ lines (#4160)
Co-authored-by: hedger <hedger@users.noreply.github.com>
2025-03-31 19:11:05 +04:00
Willy-JL ebb6194155 Merge branch 'fix/widget-textscroll-256' into mntm-dev 2025-03-26 11:35:11 +00:00
Willy-JL d02f13bef1 GUI: Fix widget text scroll with 256+ lines 2025-03-26 07:37:43 +00:00
Alexander Bays c3bfebb6e6 GUI: Add marquee 'Text Scroll' option (#363)
* GUI: Add marquee 'Text Scroll' option

- Adds the tiny `Text Scroll` option under `MNTM > Interface > General` to either use the standard scroll, or a new marquee style back and forth on any scrollable text.
- `elements_scrollable_text_line_centered` renamed to `elements_scrollable_text_line_ex` to be more general. Has `bool marquee`.

* Unnecessary switch here

* Apply setting internally

* Revert a few usages

* Update changelog

* Last thing

---------

Co-authored-by: Willy-JL <49810075+Willy-JL@users.noreply.github.com>
2025-03-02 04:50:56 +00:00
Alexander Bays adc66d78da Clock: 12 hour "midnight format" (#341)
* Clock: 12 hour midnight format

- References #317 and adds the options `12:XX` and `00:XX` in `Settings > System > Midnight Format` to display the preferred clock format past midnight on all clocks (Desktop, Main Menu MNTM style, Lock screen and Nightstand clock app). "12:30 AM" -> "00:30" OR "12:30".

* Fix: Move midnight format setting out of furi_rtc

- Also felt like the midnight format setting was too out of place in `MNTM > Interface` with the 5 other submenu entries, so I put it in Misc for now.

* clock app external

* Moved midnight format setting into new `Interface > General`

* Update applications/main/momentum_app/scenes/momentum_app_scene_interface_general.c

* Update changelog

---------

Co-authored-by: Willy-JL <49810075+Willy-JL@users.noreply.github.com>
2025-03-02 04:20:38 +00:00
Alexander Bays 3b96cc47a7 Main Menu: Refine CoverFlow menu style (#379)
* Main Menu: Refine CoverFlow menu style

- Rounds the corners of the cards
- Adds 1px margin around the center card
- Fixes vertical spacing of the cards, text label and the scrollbar.

* Update changelog

---------

Co-authored-by: Willy-JL <49810075+Willy-JL@users.noreply.github.com>
2025-03-02 04:04:19 +00:00
Willy-JL ab85ec4cc9 Enable debug on flipper when attaching blackmagic --nobuild 2025-03-02 00:42:06 +00:00
Willy-JL 2f376edd7d Merge remote-tracking branch 'ul/dev' into mntm-dev 2025-02-28 05:04:24 +00:00
Willy-JL bd2ee18e48 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2025-02-28 02:03:45 +00:00
Willy-JL 02e00498a1 BadKB: Rename code to BadUSB for easier merges
Still called BadKB for display name and appid
2025-02-28 00:06:57 +00:00
Willy-JL 268b694362 BadKB: Rewrite BadKB extras on "new" OFW BadUSB structure
- Mainly, HID interface abstractions and porting all BadKB options to it
- Tying up some loose ends, some things still not ideal but good enough
- Can customize BLE MAC address when BLE Remember is enabled
- Added BLE_ID command, alias for BT_ID (OFW BadUSB calls everything BLE)
2025-02-27 04:33:21 +00:00
MX ec593e660c Merge remote-tracking branch 'OFW/astra/3934-alarm-improvements' into dev 2025-02-25 02:06:05 +03:00
Aleksandr Kutuzov 00e64e8679 Merge remote-tracking branch 'origin/dev' into astra/3934-alarm-improvements 2025-02-25 06:18:42 +09:00
MX b38d239eb8 Merge remote-tracking branch 'OFW/hedger/more-constness' into dev [ci skip] 2025-02-24 21:18:11 +03:00
hedger 15a5e652e0 usb: restored previous api 2025-02-22 20:40:52 +00:00
hedger b99f65dd9a hal: additional fixes for constness in USB subsystem 2025-02-22 16:32:24 +00:00
hedger b0835220ac libs: stricter constness for saving RAM with .rodata section; fbt: sdk: fixed signature generation for nested const params 2025-02-22 16:05:56 +00:00
MX b887d6af21 Merge remote-tracking branch 'OFW/dev' into dev [ci skip] 2025-02-21 05:18:29 +03:00
WillyJL 404764b660 GUI: Widget view extra options for JS (#4120)
* Fill option for widget frame
* Add widget circle element
* Add widget line element
* Fix missing include for InputType
* Fix missing comment
* Update api symbols
* Load .fxbm from file
* Fix copy pasta
* Add fill param to example
* Fix some comments
* Bump JS SDK 0.3
* Fix free
* Rename widget frame to rect
* Gui: add widget_add_frame_element backward compatibility macros

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2025-02-21 10:47:56 +09:00
MX f242eef26f Merge remote-tracking branch 'OFW/dev' into dev 2025-02-21 03:08:00 +03:00
Akiva-Cohen 4e9aa3883b Updated Button Panel (#4119)
* updated button panel
* fixed mismateched .c and .h files
* Gui: extra events for ok button handling in button_panel
* Gui: extra events for other buttons handling in button_panel

Co-authored-by: あく <alleteam@gmail.com>
2025-02-21 06:57:28 +09:00
MX aef8a97ab4 Merge remote-tracking branch 'OFW/dev' into dev 2025-02-20 18:40:54 +03:00
Willy-JL 30df72a835 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2025-02-20 04:20:28 +00:00