KeyValue.getEditing is only defined when getKind is Kind.Editing. _code is overloaded, so on a character key it holds the character and Editing.values() indexed with it threw ArrayIndexOutOfBoundsException length=16 index=113 from drawLabel, crashing the IME on every draw. The phone was rolled back to the previous build first, then this fix was installed. Verified no crash after reinstall.
Unexpected Keyboard 
⚠️ Google wants to kill the open-source Android community.
See keepandroidopen.org and the F-Droid blog.
Lightweight and privacy-conscious virtual keyboard for Android.
https://github.com/Julow/Unexpected-Keyboard/assets/2310568/28f8f6fe-ac13-46f3-8c5e-d62443e16d0d
The main feature is that you can type more characters by swiping the keys towards the corners.
This application was originally designed for programmers using Termux. Now perfect for everyday use.
This application contains no ads and is open source.
Usage: to apply the symbols located in the corners of each key, slide your finger in the direction of the symbols. For example, the Settings are opened by sliding in the left down corner.
![]() |
![]() |
![]() |
|---|---|---|
![]() |
![]() |
![]() |
Help translate the application
Improve the application translations using Weblate.
Contributing
For instructions on building the application, see Contributing.
Acknowledgement
The NLnet foundation funded the work on the spell checking feature.







