Skip to content

feat(panel): Volume Up/Down + Rotate hardware buttons - #49

Merged
dev-josias merged 1 commit into
mainfrom
feat/panel-volume-rotate
Jul 1, 2026
Merged

feat(panel): Volume Up/Down + Rotate hardware buttons#49
dev-josias merged 1 commit into
mainfrom
feat/panel-volume-rotate

Conversation

@dev-josias

Copy link
Copy Markdown
Contributor

Completes the portable panel's hardware buttons (Home/Back/Recents/Power) with Volume Up/Down and Rotate. Volume/Rotate use adb via the running device's serial (the emulator ignores a lone gRPC key-press for volume; rotate has no gRPC equivalent) — off the UI thread. Adds umide_emulator helpers press_keyevent/rotate, 3 Material SVG icons, and the panel buttons. Verified on the Pixel: keyevent 24 raised volume (volume UI appeared in a screenshot); emu rotate returns OK. Build/clippy/fmt clean on Windows. My area (emulator panel / umide_emulator / icons) — no overlap with the Mac's agent-UI work.

Completes the portable panel's hardware-button set (Home/Back/Recents/Power).
Volume and Rotate go through adb (using the running device's serial) rather
than the gRPC key path: the emulator ignores a lone gRPC key-press for volume
(a non-character key, like the named keys that need keydown+keyup), and rotate
has no gRPC equivalent.

- umide_emulator: `AndroidEmulator::press_keyevent(serial, keycode)` (`adb shell
  input keyevent`) and `rotate(serial)` (`adb emu rotate`).
- Panel: Volume Up (24) / Volume Down (25) via a serial-aware `adb_key_button`,
  and a Rotate button — all run off the UI thread (B2), no-op until the serial
  has resolved after boot.
- Icons: device-volume-up/down + device-rotate SVGs (Material, currentColor),
  registered in icon-theme.toml + UmideIcons constants.

Verified on the Pixel: `input keyevent 24` raised volume (the volume UI slider
appeared in a screenshot); `emu rotate` returns OK (rotation is app-dependent,
standard Android behaviour). Build + clippy + fmt clean on Windows.
@dev-josias
dev-josias merged commit 5ceee77 into main Jul 1, 2026
7 checks passed
dev-josias added a commit that referenced this pull request Jul 1, 2026
- README + docs/index.html: fuller emulator hardware controls
  (Home/Back/Recents/Power, volume, rotate, keyboard, screenshot) and the
  key-free CLI-agent angle (no API key; uses your existing login), plus a
  README bullet for the new chat sessions.
- CLAUDE.md Current status: add a "Landed since #41" summary (input-channel
  reconnect #37, cmd.exe fixes #40/#41, DeviceInfo.serial #44, device-tools MCP
  core #46, AI panel redesign + sessions #48/#52, Volume/Rotate #49, per-device
  gRPC port #51). Device-MCP app wiring is noted as a handed-off follow-up (not
  advertised as shipped since it isn't wired yet).
dev-josias added a commit that referenced this pull request Jul 2, 2026
… emoji

The macOS sidebar rendered its hardware buttons as emoji glyphs (color bitmaps
that clash with the IDE and read as images). Swap them for the same themed
device-*.svg icon set the Windows/Linux portable panel already uses (#27/#49):
action_button now takes a UmideIcons constant and renders a 16px ui_svg tinted
LAPCE_ICON_ACTIVE inside the existing 28x28 button frame. Android: home/back/
recents/vol+/vol-/power/screenshot; iOS: home/screenshot.
dev-josias added a commit that referenced this pull request Jul 2, 2026
… emoji (#62)

The macOS sidebar rendered its hardware buttons as emoji glyphs (color bitmaps
that clash with the IDE and read as images). Swap them for the same themed
device-*.svg icon set the Windows/Linux portable panel already uses (#27/#49):
action_button now takes a UmideIcons constant and renders a 16px ui_svg tinted
LAPCE_ICON_ACTIVE inside the existing 28x28 button frame. Android: home/back/
recents/vol+/vol-/power/screenshot; iOS: home/screenshot.
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