Skip to content

iOS: FREQ ENT numeric keypad when no keyboard, respecting B SET - #8

Draft
tcpreplay-dev wants to merge 2 commits into
worldwidedx:codex/iosfrom
tcpreplay-dev:feat/ios-freq-ent-keypad
Draft

tcpreplay-dev wants to merge 2 commits into
worldwidedx:codex/iosfrom
tcpreplay-dev:feat/ios-freq-ent-keypad

Conversation

@tcpreplay-dev

Copy link
Copy Markdown
Collaborator

Improves FREQ ENT on iOS/iPad so it works without a hardware keyboard, and uses the inline edit field when one is attached — targeted at codex/ios.

FREQ ENT: keypad when no keyboard, and respect B SET

The right-panel FREQ ENT opened the inline blue edit field, which needs a keyboard to type into. Now:

  • No hardware keyboard → the on-screen numeric keypad dialog (the same one the compact layout's A FREQ button uses).
  • Hardware keyboard attached (iPad Smart/Magic Keyboard, USB, or Bluetooth) → the inline edit field.
  • Both paths honor B SET (act on VFO B when the Sub RX is targeted).

iOS hardware-keyboard detection

  • src/ios/ioskeyboard.mm/.hiosHasHardwareKeyboard() backed by GameController's GCKeyboard. A bare GCKeyboard.coalescedKeyboard read stays stale after a Bluetooth keyboard is switched off, so iosStartKeyboardMonitoring() (called from main) registers GCKeyboardDidConnect/Disconnect observers and caches live state.
  • CMakeLists.txt — builds ioskeyboard.mm with ARC and links -framework GameController.

The shared handler change (first commit) is the same one going to codex/android-tablet; this branch adds the iOS-specific detection on top.

Testing

Verified on an iPad Pro 13" (M5): keyboard off shows the keypad, keyboard on uses the inline field, and B SET targets VFO B.

🤖 Generated with Claude Code

tcpreplay-dev and others added 2 commits September 13, 2026 15:36
FREQ ENT on the right panel toggled the inline blue edit field, which needs
a hardware keyboard to type into — leaving touch users with no keyboard
stuck. Now:

- No hardware keyboard: open the on-screen numeric keypad dialog (the same
  one the compact layout's A FREQ button uses).
- Hardware USB/Bluetooth keyboard attached: keep the inline edit field.
- Both paths honor B SET (act on VFO B when the Sub RX is targeted).

Android detects a usable hardware keyboard via Configuration.keyboard /
hardKeyboardHidden (flips live on attach/remove). iOS is treated as
touch-only here; hardware-keyboard detection for iPad (GCKeyboard) lands on
the iOS branch.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
… attached

Adds GCKeyboard-based hardware-keyboard detection so the FREQ ENT change
behaves correctly on iOS/iPad:

- src/ios/ioskeyboard.mm/.h: iosHasHardwareKeyboard() backed by GameController.
  A bare GCKeyboard.coalescedKeyboard read stays stale after a Bluetooth
  keyboard is switched off, so iosStartKeyboardMonitoring() (called from main)
  registers GCKeyboardDidConnect/Disconnect observers and caches live state.
- CMakeLists: build ioskeyboard.mm (ARC) and link -framework GameController.
- FREQ ENT: no keyboard -> on-screen numeric keypad; hardware USB/BT keyboard
  -> inline blue edit field. Both honor B SET.

Verified on an iPad Pro 13" (M5): keyboard off shows the keypad, keyboard on
uses the inline field, and B SET targets VFO B.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@tcpreplay-dev
tcpreplay-dev marked this pull request as draft September 13, 2026 23:27
@tcpreplay-dev
tcpreplay-dev marked this pull request as ready for review September 13, 2026 23:32
@tcpreplay-dev
tcpreplay-dev marked this pull request as draft September 13, 2026 23:32
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