Commit Graph

42 Commits

Author SHA1 Message Date
WillyJL
934ccec91b Archive: Back out right away for main menu dirs 2025-08-23 22:59:23 +02:00
WillyJL
b376e6db97 Archive: Support Picopass files open/favorite --nobuild 2025-07-31 22:43:23 +02:00
Alexander Bays
0e3e1b352b Desktop / MNTM Settings: Directories and generic files support for Keybinds / Main Menu (#331)
* feat(Desktop): Directories support for keybinds

- Adds *RIGHT* button select in the file browser dialogs and changing the `Open File` action to `Open File/Directory` in `Settings > Desktop > Keybinds Setup`. This adds the ability to open to any directory in the Archive app, in addition to the default behavior of opening a file in it's default app.

* line order mixup

* Main Menu: Allow adding JS files (or any file)

- Normal files and directories are now able to be added to then main menu and are run in their appropriate apps.
- e.g. .txt files shown in text viewer, .js files are run in the JS Runner app, and folders are navigated to by the Archive app. All similar to the desktop keybinds functionality.
- Icons are also assigned appropriately based on the extensions, though more could probably be added to the `loader_menu_get_ext_icon` function.
- Also replaced some of the long arduous is_dir checks and just used the `storage_dir_exists` function since its already there and does the same.

* should be checking `ext` for NULL

* Move select_right at end of structs for binary compatibility

apps may blindly reach into these structs so need to keep the basics in same structure

for DialogsFileBrowserOptions this is even in public api and after compilation this would be incompatible with other firmwares even without reaching into private structs

* Select menu item / folder for directories too

* Move api below too

* Keep ofw order here too

* Refactor starting archive into desktop, less FuriString passing around

* Dont leave main menu when launching archive

* Simplify/fix a few things

* Handle folders in run_with_default_app()

* Update App -> Item naming in MNTM settings

* Fix build

* Explain pressing right

* Update changelog

---------

Co-authored-by: WillyJL <me@willyjl.dev>
2025-07-22 01:51:33 +00:00
Willy-JL
49d7ce7349 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2025-04-12 10:36:13 +01: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
Willy-JL
1ceaeb5690 Support Cross Remote in Favorites/Archive 2025-03-01 03:01:58 +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
あく
4d985ba8f8 Storage: remove LFS (#3577)
* Storage: drop internal storage

* Storage: rollback some unnecessary changes

* Storage: rollback some unnecessary changes part 2

* Storage: cleanup various defines and int handling. Ble: allow short connection interval if internal flash is not used.

* Storage: do not return storage if it is not ready

* Save PIN code to RTC, update settings

* Simplify the code, clean up includes

* Rearrange some code

* apps: storage_move_to_sd: conditionally enable with --extra-define=STORAGE_INT_ON_LFS

* Load Desktop settings automatically

* Redirect /any to /ext

* Abolish storage_move_to_sd app

* Remove as many mentions of ANY_PATH as possible

* Fix desktop settings wrongly not loading

* Improve desktop settings handling and strings

* Load BLE settings and keys automatically

* Improve BLE configuration procedure

* Do not load bluetooth keys twice if they were already loaded

* Load dolphin state automatically

* Fix merge artifact

* Load notification settings automatically

* Update desktop settings strings

* Load expansion settings automatically

* Do not use thread signals to reload desktop settings

* Load region data automatically, separate to its own hook

* Improve ble behaviour with no keys

* Fix Dolphin state not resetting correctly

* Add a status check

* Make Desktop save its own settings

* Check result when taking and releasing mutex

* Improve default thread signal handling in FuriEventLoop

* Make bt service in charge of saving settings, add settings api

* Fix a deadlock due to timer thread not receiving time

* Lock core2 when reinitialising bt

* Update clang-format

* Revert "Update clang-format"

This reverts commit d61295ac063c6ec879375ceeab54d6ff2c90a9a1.

* Format sources with clang-format

* Revert old stack size for desktop settings

* Allocate big struct dynamically

* Simplify PIN comparison

* Save pointer to storage in Desktop object

* Fix region provisioning for hardware regions

* Remove stale TODO + siimplify code

* Clean up region.c

* Use sizeof instead of macro define

* Limit PIN length to 10 for consistency

* Emit a warning upon usage of /any

* Add delay after finding flipper

* Remove unnecessary delay

* Remove all mentions of STORAGE_INT_ON_LFS

* Remove littlefs and internal storage

* Remove all possible LittleFS mentions

* Fix browser tab in Archive

* Ble: fix connection interval explanation

* Bump API Symbols

* BLE: Update comments interval connection comments

* Storage: clear FuriHalRtcFlagStorageFormatInternal if set

---------

Co-authored-by: Georgii Surkov <georgii.surkov@outlook.com>
Co-authored-by: hedger <hedger@nanode.su>
Co-authored-by: Georgii Surkov <37121527+gsurkov@users.noreply.github.com>
2024-08-04 10:54:02 +01:00
Willy-JL
02f7207d28 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2024-07-15 22:18:35 +01:00
hedger
ffa3996a5e [FL-3867] Code formatting update (#3765)
* clang-format: AllowShortEnumsOnASingleLine: false
* clang-format: InsertNewlineAtEOF: true
* clang-format: Standard:        c++20
* clang-format: AlignConsecutiveBitFields
* clang-format: AlignConsecutiveMacros
* clang-format: RemoveParentheses: ReturnStatement
* clang-format: RemoveSemicolon: true
* Restored RemoveParentheses: Leave, retained general changes for it
* formatting: fixed logging TAGs
* Formatting update for dev

Co-authored-by: あく <alleteam@gmail.com>
2024-07-15 13:38:49 +09:00
Zachary Weiss
0e8806c6c6 Archive: Favorite .mag files (#110)
* Impl mag file favoriting, add icon

* Revert API ver

* No weird formatting

---------

Co-authored-by: Willy-JL <49810075+Willy-JL@users.noreply.github.com>
2024-04-30 03:35:19 +01:00
Zachary Weiss
30414e864b Impl basic favorite ability for WAVs
Namely just for the sake of favorite-ing the cart lock/unlock. Requires changes to WAV player ext fap, as to be PR'd from the Momentum-Apps repo.
2024-04-17 00:19:03 -04:00
Willy-JL
e69a6c06ef Move back to "badusb" folder for compatibility 2024-03-14 00:37:24 +00:00
Willy-JL
e229367780 Archive: Support viewing Disk Images with Virtual Mount 2024-02-20 06:14:49 +00:00
Willy-JL
b58bcac1a2 Archive: Open .img in Mass Storage app 2024-02-20 06:14:49 +00:00
Nikolay Minaylov
c3c54f672c Archive: fixed Apps tab ext filter (#3450)
Co-authored-by: あく <alleteam@gmail.com>
2024-02-15 10:53:34 +07:00
Willy-JL
c7d9e1ea22 Fix extension merge 2024-02-14 19:51:52 +00:00
Willy-JL
27601d2a9a Merge branch 'nm/js_archive_ext_filter' of https://github.com/flipperdevices/flipperzero-firmware into xfw-dev 2024-02-14 19:15:51 +00:00
nminaylov
89e9a2083c Archive: fixed Apps tab ext filter 2024-02-14 17:04:40 +03:00
Willy-JL
4027db5156 Merge branch 'dev' of https://github.com/flipperdevices/flipperzero-firmware into xfw-dev 2024-02-12 16:43:26 +00:00
Nikolay Minaylov
0154018363 [FL-3579, FL-3601, FL-3714] JavaScript runner (#3286)
* FBT: cdefines to env, libs order
* API: strtod, modf, itoa, calloc
* Apps: elk js
* Apps: mjs
* JS: scripts as assets
* mjs: composite resolver
* mjs: stack trace
* ELK JS example removed
* MJS thread, MJS lib modified to support script interruption
* JS console UI
* Module system, BadUSB bindings rework
* JS notifications, simple dialog, BadUSB demo
* Custom dialogs, dialog demo
* MJS as system library, some dirty hacks to make it compile
* Plugin-based js modules
* js_uart(BadUART) module
* js_uart: support for byte array arguments
* Script icon and various fixes
* File browser: multiple extensions filter, running js scripts from app loader
* Running js scripts from archive browser
* JS Runner as system app
* Example scripts moved to /ext/apps/Scripts
* JS bytecode listing generation
* MJS builtin printf cleanup
* JS examples cleanup
* mbedtls version fix
* Unused lib cleanup
* Making PVS happy & TODOs cleanup
* TODOs cleanup #2
* MJS: initial typed arrays support
* JS: fix mem leak in uart destructor

Co-authored-by: SG <who.just.the.doctor@gmail.com>
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2024-02-12 15:54:32 +07:00
Willy-JL
ae8488ecba Re-merge the file browser changes properly 2023-07-14 15:25:02 +02:00
Willy-JL
7ce9e41091 Revert "Merge previous file browser commits"
This reverts commit 06c44031e7.
2023-07-14 14:25:26 +02:00
Willy-JL
06c44031e7 Merge previous file browser commits 2023-07-14 03:52:23 +02:00
Nikolay Minaylov
92c0baa461 [FL-3383, FL-3413] Archive and file browser fixes (#2862)
* File browser: flickering and reload fixes
* The same for archive browser
2023-07-12 20:35:11 +04:00
Willy-JL
761ea80454 Archive: New tab for searching files 2023-07-03 22:31:54 +02:00
Willy-JL
0ccdc60921 Support remote and playlist files in archive 2023-07-03 02:40:26 +02:00
Willy-JL
b89f93e9a3 Archive fix actions menu retardedness 2023-06-04 22:57:31 +01:00
Willy-JL
f2ce2ad95c Archive fix internal and external browsers 2023-06-04 17:25:35 +01:00
Willy-JL
405a6f76db Archive go brrr 2023-05-22 14:10:12 +01:00
Willy-JL
a0d6c6e63c Allow setting folders as favorites in archive 2023-04-23 18:43:58 +01:00
Willy-JL
f263249016 Merge branch 'dev' of https://github.com/ClaraCrazy/Flipper-Xtreme into badusb-ble 2023-02-10 10:09:42 +00:00
Willy-JL
9b80cec2fa Add internal flash browser tab 2023-02-10 10:09:28 +00:00
Willy-JL
f3bb068fd7 Rename bad usb to bad kb 2023-02-03 17:43:59 +00:00
VerstreuteSeele
f0df3ff827 Browser now opening to browser 2023-01-14 05:44:07 +01:00
あく
769c53b6da [FL-2977] Gui: better navigation in file browser dialog (#2014)
* Gui: proper navigation in file browser dialog
* Trim file name from start path
* File list loading fix
* File list offset fix

Co-authored-by: nminaylov <nm29719@gmail.com>
Co-authored-by: Sergey Gavrilov <who.just.the.doctor@gmail.com>
2022-11-29 03:59:24 +09:00
RogueMaster
a486cc898a Merge branch 'ofwdev' into 420 2022-11-28 12:12:22 -05:00
Maksim Derbasov
e121e6a287 Fix for spelling (#2051)
* Fix for spelling
* Review iteration

Co-authored-by: あく <alleteam@gmail.com>
2022-11-29 01:51:51 +09:00
nminaylov
536eb93fd3 File list offset fix 2022-11-25 17:44:23 +03:00
Max Andreev
d07c2dbe54 ".fap" extention in file browser and archive tab (#1812)
* Add .fap extention, and Applications tab
* Using new icon, renaming tab to Apps
* Change tabs order
* Add first ugly implementation of in-app icons in archive browser
* Starting using FAPLoader callback
* Getting all metafata from fap
* add app filename fallback
* using fap_loader_item_callback in archive_list_item_cb
* FAP-Loader: removed minimal allocation
* Removed strange code

Co-authored-by: SG <who.just.the.doctor@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2022-10-07 00:37:53 +09:00
Sergey Gavrilov
4bf29827f8 M*LIB: non-inlined strings, FuriString primitive (#1795)
* Quicksave 1
* Header stage complete
* Source stage complete
* Lint & merge fixes
* Includes
* Documentation step 1
* FBT: output free size considering BT STACK
* Documentation step 2
* py lint
* Fix music player plugin
* unit test stage 1: string allocator, mem, getters, setters, appends, compare, search.
* unit test: string equality
* unit test: string replace
* unit test: string start_with, end_with
* unit test: string trim
* unit test: utf-8
* Rename
* Revert fw_size changes
* Simplify CLI backspace handling
* Simplify CLI character insert
* Merge fixes
* Furi: correct filenaming and spelling
* Bt: remove furi string include

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-10-06 00:15:23 +09:00
SG
b9a766d909 [FL-2627] Flipper applications: SDK, build and debug system (#1387)
* Added support for running applications from SD card (FAPs - Flipper Application Packages)
* Added plugin_dist target for fbt to build FAPs
* All apps of type FlipperAppType.EXTERNAL and FlipperAppType.PLUGIN are built as FAPs by default
* Updated VSCode configuration for new fbt features - re-deploy stock configuration to use them
* Added debugging support for FAPs with fbt debug & VSCode
* Added public firmware API with automated versioning

Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: SG <who.just.the.doctor@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2022-09-15 02:21:03 +09:00