Repository navigation
EffectCraft 0.10.0 Android arm64 (nightly)
Pre-releaseNightly build of the EffectCraft Android (arm64) port with the physical keyboard and mouse input fix.
What's fixed
Keyboard chords work at last. winit's Android backend ignores the meta state Android carries on every key event and never emits the ModifiersChanged event egui learns Ctrl/Shift/Alt from, so egui's modifiers were always empty and no chord — Undo, Save, the panel shortcuts, Preferences — could match, and a chord's letter degenerated into its plain-key binding. The app now tracks the modifier keys from the key events themselves and stamps them onto each frame's events (stamp_android_modifiers in ui-egui, ported from FilmCraft's hardware-validated fix). Wheel and click events carry the held modifiers too.
A mouse is usable. The same backend dropped every non-touch motion event (upstream's branch is literally // TODO mouse events): no hover, no scroll wheel, no right/middle button. winit 0.30.13 is vendored (third_party/winit) with that one Android file filled in — mouse and trackpad pointers now produce MouseWheel, MouseInput and cursor-move/enter/leave events; touch and touch-dragged stylus input is untouched, and every other target compiles the published crate byte for byte.
Verification
- 7 new host tests cover the modifier stamping; full workspace CI green (
fmt,clippy -D warnings, 3257 + 212 tests, layers / assets / wasm / pdf-deps gates). - On device (Galaxy Tab S9 FE+, Android 16): an injected
Ctrl+Alt+;opens Settings; the bare;key opens nothing. Before this build the chord arrived as a bare key and matched nothing. - A physical mouse verified on-device: wheel scrolling, right-click and hover/cursor movement all register — the exact events the stock backend used to drop.
Notes
- Known, pre-existing and unrelated: if the display times out while the app is in the foreground, Android 16's activity teardown can hit an
android-activityglue deadlock (on_destroy) and show the system's "isn't responding" dialog. The identical stack is recorded for v0.9.2 on this device; relaunching recovers, and the auto-save recovery dialog protects unsaved work. - APK is debug-keystore signed (sideload install):
effectcraft.apk, 31.4 MB.