feat: new menu called Quick Access - #2725
Open
Mysteriza wants to merge 3 commits into
Open
Conversation
- QuickAccessManager: JSON persistence of up to 15 pinned items in LittleFS - QuickAccessMenu: new main menu item (first position) with star icon - Shows pinned files as launchable options - Manage Pins sub-menu to remove individual pins - Clear All, Browse & Pin shortcuts - Empty-state hint when no pins exist - Smart handling for missing files (offers to remove stale pin) - loopSD integration: Pin/Unpin from Quick Access option for .ir, .sub, .txt - Context-aware label (Pin vs Unpin) based on current state - Startup default: Quick Access is first menu item, focused on cold boot
Add QuickAccessManager with JSON persistence to LittleFS (max 15 pins). Add QuickAccessMenu with star icon, manage and add-files submenus with confirmation dialogs. Add Pin/Unpin options in file browser for .ir, .sub, .txt, .js/.bjs files. Refactor: extract toggleQuickAccessPin helper in sd_functions to eliminate 4x duplication; fix reserved include guards; optimize toJson() to avoid return-by-value copy. Security: add path traversal protection and input validation in pin() and executePinnedItem().
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposed Changes
Finding and launching your most-used files shouldn't require digging through folders every time.
This PR introduces Quick Access, a new main menu that lets users save up to 15 frequently used files for instant access after the device boots. Instead of browsing through LittleFS or the SD card each time, users can pin their favorite files once and launch them directly from the main menu.
Supported file types include IR, SubGHz, BadUSB, and JavaScript files.
Files can be pinned or unpinned either while browsing files or from the Add Files option inside Quick Access.
Types of Changes
Verification
.ir,.sub,.txt,.js) can be pinned directly from the file browser.Testing
Tested on Reaper (ESP32-S3) hardware.
Verified:
Linked Issues
N/A
User-Facing Change
Users can now save their favorite files in Quick Access and launch them directly from the main menu without navigating through the file browser every time.
Screenshots
Further Comments
This PR also includes several internal improvements, including code cleanup, reduced duplication, performance optimizations, and additional path validation for safer file handling.