Skip to content

Promote dev → staging: fix "All bands & custom frequency" crash - #974

Merged
patrickrb merged 3 commits into
stagingfrom
dev
Oct 27, 2026
Merged

patrickrb merged 3 commits into
stagingfrom
dev

Conversation

@patrickrb

Copy link
Copy Markdown
Owner

Promotes everything merged into dev since the last staging promotion (#967): 1 PR, 3 commits.

Device testing for this batch: none needed. The only change is a Compose layout fix; it doesn't touch TX, CAT, audio, or permissions.

Bands / UI

🤖 Generated with Claude Code

patrickrb and others added 3 commits October 27, 2026 15:32
51999c9 gave FrequencyPickerContent its own verticalScroll on the
premise that FT8AFBottomSheet didn't scroll, but the sheet has wrapped its
content in verticalScroll since the Compose UI landed. The nested scroll
is measured with an infinite max height and Compose throws
IllegalStateException as soon as the picker opens. Drop the inner scroll;
the sheet's scroll already keeps the alternates reachable on short screens.

The #930 layout test rendered the picker body on its own, so it never saw
the nesting. Host it in FT8AFBottomSheet as the app does, and add a
regression test that opens FrequencyPickerSheet itself.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Pin OperationBand.bandList, GeneralVariables.operatingMode and
  excludedBands in a @Before/@after fixture instead of a one-off
  try/finally, so the picker tests don't depend on what an earlier
  Robolectric test left in the shared statics.
- Expand the alternates in the portrait open test and scroll to the last
  chip, so the sheet-owned scroll is checked in portrait as well as
  landscape.
- Document the scroll contract on FT8AFBottomSheet: content must not add
  its own vertical scroll, which is how #972 happened.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Fix crash opening "All bands & custom frequency" (#972)
@codecov

codecov Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 42.47%. Comparing base (5a1f7f5) to head (6787f49).
⚠️ Report is 27 commits behind head on staging.

Additional details and impacted files

Impacted file tree graph

@@              Coverage Diff              @@
##             staging     #974      +/-   ##
=============================================
+ Coverage      42.42%   42.47%   +0.05%     
  Complexity       309      309              
=============================================
  Files            283      283              
  Lines          34909    34908       -1     
  Branches        4219     4219              
=============================================
+ Hits           14809    14827      +18     
+ Misses         19771    19746      -25     
- Partials         329      335       +6     
Flag Coverage Δ
android 18.84% <ø> (+0.07%) ⬆️
desktop 66.61% <ø> (+0.06%) ⬆️
ios 97.71% <ø> (ø)
native 12.70% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...dio/ks3ckc/ft8af/ui/components/FT8AFBottomSheet.kt 85.57% <ø> (ø)
...ks3ckc/ft8af/ui/components/FrequencyPickerSheet.kt 61.75% <ø> (+7.16%) ⬆️

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

Copy link
Copy Markdown

Debug APK

Download FT8AF-pr974-6787f49-debug.zip (built from 6787f49, run)

Unzip it and install the .apk on the phone. The download needs a signed-in GitHub account, and the link expires after 30 days.
This build is signed with the shared debug key, so it installs over any earlier PR debug APK. Android will not install it over the Play Store build (or a debug build made on your own machine), because those are signed with a different key; you have to uninstall that one first.

Uninstalling deletes all of the app data: the QSO log, settings, and saved logbook and rig configuration. Export your log as ADIF before you do this on a phone you operate from.

@patrickrb
patrickrb merged commit 89051e9 into staging Oct 27, 2026
39 checks passed
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