Skip to content

TX strip: make the CQ options sheet discoverable#349

Merged
patrickrb merged 1 commit into
devfrom
feat/cq-options-discoverable
Jun 26, 2026
Merged

TX strip: make the CQ options sheet discoverable#349
patrickrb merged 1 commit into
devfrom
feat/cq-options-discoverable

Conversation

@patrickrb

Copy link
Copy Markdown
Owner

Problem

Holding the CQ button opens an options sheet (CQ modifier, free text, Field Day), but the only hint it existed was a 10dp, 50%-alpha chevron tucked after the label plus the whole-button long-press gesture. A tester reported: "it's too hard to understand that holding CQ button shown popup. I wouldn't know if I dont report this issue."

Change

  • Replace the faint glyph with a visible, separately-tappable chevron button at the trailing edge of the CQ button. A plain tap opens the options sheet — no need to discover the long-press.
  • Add a tx_cq_options content description ("CQ message options …") for accessibility / TalkBack.
  • Whole-button long-press still opens the same sheet (shortcut kept); short-tap still calls CQ.
  • Extract the subtitle precedence (free text > Field Day > modifier > none) into a testable cqStripSubtitle() helper.

Tests

  • New CqStripSubtitleTest covering the precedence + STOP-state cases.
  • testDebugUnitTest green; built and installed on the Pixel 8, launches cleanly.

Part of a series addressing tester feedback on the Android UI (item 1 of 4).

Holding the CQ button opens a sheet (CQ modifier, free text, Field Day),
but the only affordance was a 10dp, 50%-alpha chevron tucked after the
label and the whole-button long-press. A tester reported they'd never
have found it.

Replace the faint glyph with a visible, separately-tappable chevron
button at the trailing edge of the CQ button: a plain tap opens the
options sheet (discoverable), with a "CQ message options" content
description for accessibility. The whole button still long-presses to
the same sheet as a shortcut, and short-tap still calls CQ.

Extract the subtitle-precedence logic (free text > Field Day > modifier
> none) into a testable cqStripSubtitle() helper with unit tests.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@codecov

codecov Bot commented Jun 26, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 28.57143% with 15 lines in your changes missing coverage. Please review.
✅ Project coverage is 11.50%. Comparing base (6bc083c) to head (4dc3ef3).
⚠️ Report is 29 commits behind head on dev.

Files with missing lines Patch % Lines
...kotlin/radio/ks3ckc/ft8af/ui/components/TxStrip.kt 28.57% 15 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff              @@
##                dev     #349      +/-   ##
============================================
- Coverage     11.70%   11.50%   -0.21%     
- Complexity      113      120       +7     
============================================
  Files            85       89       +4     
  Lines         11691    12578     +887     
  Branches       2110     2249     +139     
============================================
+ Hits           1369     1447      +78     
- Misses        10191    11000     +809     
  Partials        131      131              
Files with missing lines Coverage Δ
...kotlin/radio/ks3ckc/ft8af/ui/components/TxStrip.kt 4.84% <28.57%> (+1.13%) ⬆️

... and 3 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Improves the discoverability and accessibility of the CQ options sheet in the TX strip by adding a dedicated chevron affordance and extracting subtitle precedence logic into a unit-testable helper.

Changes:

  • Adds a separately tappable chevron button on the CQ action to open the CQ options sheet (while preserving whole-button long-press).
  • Introduces cqStripSubtitle() helper and adds unit tests to validate subtitle precedence and STOP behavior.
  • Adds an accessibility content description string for the CQ options affordance.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
ft8af/app/src/main/kotlin/radio/ks3ckc/ft8af/ui/components/TxStrip.kt Adds cqStripSubtitle() helper and replaces the faint chevron with a dedicated tappable chevron affordance plus accessibility semantics.
ft8af/app/src/main/res/values/strings_compose.xml Adds tx_cq_options string for TalkBack/content description on the new chevron button.
ft8af/app/src/test/kotlin/radio/ks3ckc/ft8af/ui/components/CqStripSubtitleTest.kt Adds unit tests covering subtitle precedence and STOP-state behavior.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@patrickrb patrickrb merged commit 8d8ace0 into dev Jun 26, 2026
17 checks passed
@patrickrb patrickrb deleted the feat/cq-options-discoverable branch June 26, 2026 18:57
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.

2 participants