feat: add splash screen editor for B&W/grayscale radios - #153
Draft
pfeerick wants to merge 2 commits into
Draft
Conversation
pfeerick
marked this pull request as draft
August 5, 2026 11:45
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #153 +/- ##
==========================================
+ Coverage 36.25% 38.43% +2.18%
==========================================
Files 115 129 +14
Lines 4281 4769 +488
Branches 1034 1127 +93
==========================================
+ Hits 1552 1833 +281
- Misses 2523 2703 +180
- Partials 206 233 +27 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
EdgeTX Buddy has been automatically deployed to Cloudflare. |
Lets users select firmware for X7/X9-Lite/Zorro-class (128x64 mono) and X9D/X9D+/X9E (212x64 grayscale) radios from the Cloud, Local file, or CloudBuild tabs, embed a custom splash image (dithered preview with Floyd-Steinberg or plain threshold, fit/fill, invert), and save the patched firmware or flash it directly. - shared/splash: isomorphic marker-search/RLE/pack codec ported from EdgeTX Companion's FirmwareInterface, with unit tests plus a round-trip check against real released firmware and a cross-check against a verbatim copy of Companion's own RLE decoder - new patchFirmwareSplash/splashCapability/firmwareSplashInfo GraphQL operations, reusing the existing local-firmware registry so patched results flow into the existing flash/download machinery unchanged - CloudBuild tab support triggers a build via the same flow DownloadCloudbuildButton uses, then hands off to the same local-firmware editing path used by the other two tabs Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ayscale preview sizing Applying from the GitHub/CloudBuild tabs silently overwrote the original release/target selection with no easy way back, and doing so without saving first meant losing the edit entirely (the local firmware registry isn't persisted to disk). "Apply and continue" is now only offered when editing from the Local file tab, where the source stays on disk and is trivial to reselect. All three tabs now eagerly register real firmware before opening the editor, so the dialog always has real bytes to work with. This also lets the dialog derive verified splash capability (and the compressed-size ceiling) directly from those bytes instead of a static per-target table, and adds a "current splash screen" preview decoded from the firmware. Fixes the 212x64 grayscale preview overflowing its container by using a format-aware zoom instead of a fixed 3x. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
pfeerick
force-pushed
the
feature/splash-screen-editor
branch
from
August 5, 2026 13:57
84f1f5e to
7058069
Compare
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.
Summary
shared/splash: isomorphic marker-search/RLE/pack codec ported from EdgeTX Companion'sFirmwareInterface, verified against real released firmware and cross-checked against a verbatim copy of Companion's own RLE decoderpatchFirmwareSplash/splashCapability/firmwareSplashInfoGraphQL operations, reusing the existing local-firmware registry so patched results flow into the existing flash/download machinery unchangedDownloadCloudbuildButtonuses, then hands off to the same local-firmware editing path used by the other two tabsFollow-up fixes
Screenshots
bw212




bw128
Test plan
src/shared/splash/__tests__RleBitmapclass and confirmed it decodes patched firmware identically to this implementationEditSplashButton.spec.tsx,MockedProvider/nock)yarn test:types,yarn lint,yarn fmt:check, fullvitestsuite all cleanManual Tests
🤖 Generated with Claude Code