Skip to content

Fix: Show signal strength as a bar indicator instead of a percentage#486

Merged
d4rken merged 1 commit into
mainfrom
fix/signal-indicator-bars
Apr 7, 2026
Merged

Fix: Show signal strength as a bar indicator instead of a percentage#486
d4rken merged 1 commit into
mainfrom
fix/signal-indicator-bars

Conversation

@d4rken

@d4rken d4rken commented Apr 7, 2026

Copy link
Copy Markdown
Member

What changed

Signal strength no longer shows as a percentage next to the device name — it's now a small bar indicator at the end of the device title, similar to a cellular signal icon. This fixes a long-standing confusion where users would read "93%" as a battery level since both numbers looked identical.

The key and direct-connection icons that used to be bundled with the signal percentage now live on their own on the device type line, in a smaller badge.

Technical Context

  • New SignalIndicator composable draws four rounded bars via Canvas (no dependency on the Material icon library, which only ships SignalCellular0Bar and SignalCellular4Bar in twotone — missing the 1/2/3 variants).
  • Bar thresholds: >=80% → 4 bars, >=60% → 3, >=40% → 2, >=20% → 1, below → 0. Not-live devices render a LinkOff icon.
  • Signal quality mapping is extracted into a pure signalLevelOf helper and unit-tested for boundaries, non-finite input (NaN, infinities), and out-of-range values — PodDevice.signalQuality can emit negatives for extreme RSSI, which the mapper now clamps defensively.
  • SignalBadge was renamed to DeviceConnectionBadge and stripped of the antenna icon, signal text, and LinkOff branch — it now only carries the BLE key state + AAP direct-connection icons. It early-returns when both are absent, so devices with neither no longer render an empty pill.
  • The popup and unknown-device card intentionally do not get the DeviceConnectionBadge — those surfaces never showed key/AAP info, and adding it is out of scope.
  • Accessibility: new signal_indicator_bars_cd / signal_indicator_disconnected_cd strings, applied via semantics { contentDescription = ... } on the indicator root. English-only for now — non-English locales will be filled in by a follow-up Crowdin run.
  • Dead code removed: PodDevice.getSignalQuality and the already-dead BlePodSnapshot.getSignalQuality.
  • Play Store screenshot baselines render DualPodsCard / SinglePodsCard / CasePopUpContent, so they'll drift after this change — intentionally not regenerated here; will be handled in a separate screenshot refresh.

Closes #463

@d4rken d4rken added the enhancement Add a new feature of improve an existing feature label Apr 7, 2026
@d4rken d4rken merged commit a102b03 into main Apr 7, 2026
10 checks passed
@d4rken d4rken deleted the fix/signal-indicator-bars branch April 7, 2026 15:56
@MixedBanana

Copy link
Copy Markdown

I prefer the percentage for signal strength as it's obviously more precise and allows me to use the gauge to troubleshoot shoot Bluetooth antenna issues with the Galaxy Z Fold6, which is a pain the deal with especially with Apple air pods. Can I give the option to pick Bar or percentage with signal graph? Please or should I go back to older version.?

@d4rken

d4rken commented Apr 15, 2026

Copy link
Copy Markdown
Member Author

I prefer the percentage for signal strength as it's obviously more precise and allows me to use the gauge to troubleshoot shoot Bluetooth antenna issues with the Galaxy Z Fold6, which is a pain the deal with especially with Apple air pods. Can I give the option to pick Bar or percentage with signal graph? Please or should I go back to older version.?

The problem is that on newer Android versions, that get the L2CAP socket fix, and we establish an AAP connection, there is no good signal level indication. I noticed on my pods that they actually stop transmitting BLE advertisements once an AAP connection was established, so we had no signal level source at all. I will revisit this in the future if I get a better idea.

If this is important to you, open a new issue ticket so we can track this as extra feature request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement Add a new feature of improve an existing feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Suggestion: Option to hide Signal Strength

2 participants