Skip to content

Input Leaf v1.3.0 - Architecture & Stability 🍃

Choose a tag to compare

@anasvhora284 anasvhora284 released this 09 Jul 13:29
· 351 commits to master since this release

🍃 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 into NetworkUtils.kt, permissions into PermissionStatusProvider.kt, and a unified InputInjector interface 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

  1. Download the APK matching your device architecture (or universal.apk).
  2. Install the APK on your Android device.
  3. If using Shizuku (Recommended), ensure Shizuku is running before connecting.