Skip to content

Custom mesh-radio SF Symbol (Nodes tab + connected-radio tip)#2097

Merged
garthvh merged 6 commits into
mainfrom
feat/mesh-radio-symbol
Jul 16, 2026
Merged

Custom mesh-radio SF Symbol (Nodes tab + connected-radio tip)#2097
garthvh merged 6 commits into
mainfrom
feat/mesh-radio-symbol

Conversation

@garthvh

@garthvh garthvh commented Jul 16, 2026

Copy link
Copy Markdown
Member

Adds a custom custom.mesh.radio SF Symbol distilled from the ThinkNode M1 handheld radio (body, screen, keypad, antenna), authored in the project's symbol-template format with Ultralight/Regular/Black variants.

Uses it in two places:

  • Nodes tab bar icon (replacing flipphone).
  • The connected-radio tip on the Connect screen (ConnectionTip, replacing antenna.radiowaves.left.and.right).

Builds clean for device; symbol verified to render upright and legible down to toolbar scale.

Summary by CodeRabbit

  • Style
    • Updated the Nodes tab and Bluetooth connection tips with a custom mesh radio icon.
    • Replaced the previous system icons with consistent branded artwork across supported iOS versions.

…io tip

Add a custom.mesh.radio SF Symbol (distilled from the ThinkNode M1 handheld
radio: body + screen + keypad + antenna) and use it for the Nodes tab bar icon
(replacing flipphone) and the connected-radio TipKit tip on the Connect screen
(replacing antenna.radiowaves.left.and.right).
@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • Meshtastic/Assets.xcassets/custom.mesh.radio.symbolset/custom.mesh.radio.svg is excluded by !**/*.svg

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1607865c-23a7-4a2c-a360-6858f36a0a2d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

A custom mesh radio symbol set was added and referenced by the connection tip and Nodes tab UI, replacing the previous SF Symbols across both supported tab implementations.

Changes

Custom mesh radio icon

Layer / File(s) Summary
Define custom symbol asset
Meshtastic/Assets.xcassets/custom.mesh.radio.symbolset/Contents.json
Defines the universal custom.mesh.radio symbol entry and references its SVG asset.
Use custom icon in UI
Meshtastic/Tips/BluetoothTips.swift, Meshtastic/Views/ContentView.swift
Updates ConnectionTip and both iOS tab implementations to use the custom mesh radio image asset.

Estimated code review effort: 1 (Trivial) | ~3 minutes

Poem

A bunny hops through icons bright,
Swaps old symbols for mesh delight.
One custom sign, so neat and clear,
Guides connection paths from ear to ear.
The Nodes tab wears its radio cheer.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly matches the main change: adding a custom mesh-radio symbol and using it in the Nodes tab and connected-radio tip.
Description check ✅ Passed It covers what changed, why, and how it was tested, with only non-critical template sections like screenshots and checklist items omitted.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

garthvh added 5 commits July 16, 2026 14:59
Widen the body and shorten it (and stubbier antenna) so the handheld radio
reads chunkier instead of tall-and-narrow.
The glyph only reached ~78% of the cap height, so SF Symbols rendered it
smaller than sibling tab icons. Scale it up to fill baseline-to-capline while
keeping the fat body proportions, so it matches the other tab bar icons' size.
Big square screen, short thick stubby antenna top-left, round knob top-right,
and a small LED strip low on the body — drop the numeric keypad (the M1 has no
front keypad), which read as janky/phone-like.
Widen the body to fill more of the layout box (bigger in the tab, which is
height-constrained), and make the left antenna taller and thicker so it reads
more prominently, tip kept at the cap line.
Fill the screen as a solid panel (the M1's bright LCD, reads as the tint color)
and thicken the body outline, antenna, knob and LED dots so the glyph carries
the same visual weight as the other tab bar icons instead of looking thin.
@garthvh
garthvh merged commit d9e8c17 into main Jul 16, 2026
3 of 5 checks passed
@garthvh
garthvh deleted the feat/mesh-radio-symbol branch July 16, 2026 22:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant