What's Changed
- V2.0 — refonte UI, Game Profiles, Desktop Mode, module update
A major release: complete UI redesign, Game Profiles with auto-switch, Desktop mode, Android TV support, an in-app update checker, and a backup/restore system — on top of several hardware-validated bug fixes.
New Features
- Game Profiles — save the current calibration, button mapping, rumble intensity and mouse sensitivity as a named preset. Load, rename, duplicate or delete presets from a dedicated screen, and bind a preset to one or more apps so the service automatically switches profile when you launch a bound game.
- Desktop mode — a fifth emulation profile that turns the controller into a virtual mouse + keyboard: right trackpad drives the cursor, left trackpad scrolls, buttons map to common keys. Even while a gamepad profile is active, the trackpads can optionally double as a mouse sidecar.
- Android TV support — dedicated banner/leanback UI, D-pad focus navigation across every screen, on-screen keyboard now shows up correctly when a text field is focused.
- Auto-update checker — checks GitHub Releases for a newer version at launch (once every 24h) or on demand, shows release notes, downloads the signed APK, and hands off to the system installer.
- Backup & restore — export every live setting and all Game Profiles to a single JSON file, import it back at any time.
- Full UI redesign — all four screens rebuilt with Material 3, official Steam Input button icons, adaptive layouts for phone/tablet/TV.
- Trigger full-press mapping — L2/R2 "fully pulled" is now mappable, self-mapped by default.
- App version now shown in the UI and used by the update checker.
Improvements
- Rumble tuning (Bluetooth): frequency/duty cycle retuned for noticeably stronger feedback; fixed a magnitude-0 "stop" command being silently dropped.
- Button mapping screen reorganized into clearer categories.
Bug Fixes
- Virtual keyboard not appearing while the controller is connected (USB) — fixed by claiming every USB interface on connect.
- Virtual keyboard not appearing while the controller is connected (Bluetooth) — mitigated via a Settings override + explicit forced show.
- Battery flickering between 0%/99% (USB) — removed the unreliable read, now uses the dedicated battery report.
- Battery stuck at a low, wrong value (USB) — fixed the byte offset for the real 15-byte battery report.
- Battery stuck on "—" (Bluetooth) — added an explicit read to seed the initial value on a notify-only characteristic.
- Adaptive launcher icon clipped on some OEM icon themes — replaced with a proper adaptive icon.
- Minor header alignment fixes on the main screen.
Known Limitations
- USB rumble not implemented yet (Bluetooth only).
- Trackpads work as a mouse but not as a native DS4/DualSense touchpad.
- Gyroscope parsed but not routed anywhere yet.
- No Bluetooth auto-reconnect.
- Shizuku must be restarted manually after every reboot.
New Contributors
- @SonicDX12 made their first contribution in #1
Full Changelog: v1.0.0...v2.0.0