feat(panel): Volume Up/Down + Rotate hardware buttons - #49
Merged
Conversation
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
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).
This was referenced Jul 1, 2026
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.