Repository navigation
Input Leaf v1.3.0 - Architecture & Stability 🍃
🍃 Input Leaf v1.3.0
Architecture and stability overhaul introducing Shizuku injection mode, automatic keyboard reversion, and more robust connection logic.
Highlights & Improvements
Shizuku Integration & Shortcuts
- Direct Injection: Fully supports system-level hardware shortcuts using Shizuku.
- Full OS Support: Shortcuts like
Alt+Tab(Recent Apps),Meta+D(Home), and more work identically to a physical Bluetooth keyboard, overcoming the limitations of the Accessibility Virtual Keyboard method.
Graceful Disconnect & Auto-Revert Keyboard
- Automatic IME Switching: Added a disconnect event trigger so you no longer need to dig into Android settings when you disconnect.
- Graceful Cleanup: When you close the app or disconnect from the PC, Input Leaf automatically prompts you to switch your keyboard back to your preferred default (e.g., Gboard).
Screen Name & Battery Optimization
- Auto-Generated Screen Names: Automatically generates a default screen name so you don't have to manually configure it on first launch.
- Battery Optimization Handling: Added improved user guidance and handling for Android battery optimizations so the service stays alive in the background reliably.
Connection Lifecycle Fixes
- Reconnect Loop Fixed: Fixed an infinite loop where the app would rapidly bounce between Connects, Idle, and Disconnects upon resuming from the background.
- Fresh Handshake on Resume: The app now instantly drops stale background sockets when reopening and immediately forces a fresh, rapid handshake.
UI and Rendering Fixes
- Permission & Setup Screens: Fixed incorrect padding and overlapping elements on the Permission and Setup screens.
- Missing Permission States: Missing permission states are now more robust, clearly directing users when fallbacks are needed.
Technical Improvements
- Codebase Modularization: Extracted keymapping into
KeyMapUtils.kt, networking intoNetworkUtils.kt, permissions intoPermissionStatusProvider.kt, and a unifiedInputInjectorinterface bridging Shizuku and Accessibility. - Removed Old Clutter: Stripped out the legacy ADB and local UHID socket methods, reducing app footprint and complexity.
- Memory Leaks Patched: Addressed service lifecycle management issues that were causing memory retention after long sessions.
Contributors
Thanks to everyone who contributed to this release!
- @EphraimShikanga: fixed the crash on Android 10 and older devices, and made unreachable servers retry instead of crashing the app (#4).
Installation
- Download the APK matching your device architecture (or
universal.apk). - Install the APK on your Android device.
- If using Shizuku (Recommended), ensure Shizuku is running before connecting.