Releases: sspanak/tt9
v43.0
Gujarati and Tamazight Support
Version 43.0 adds the Gujarati and Tamazight languages, fixes the typing lag accidentally introduced in the previous version, and fixes crashes in specific scenarios on some devices.
What's Changed
- Languages
- Added Gujarati (phonetic layout) (#577). Thanks to @Docbroke again.
- Added Tamazight (both Latin and native Tifinagh layouts) (#684). Thanks to @abdelhaqueidali
- Updated the Hindi word frequencies
- Added 'git' to English
- Bulgarian
- Fixed the frequencies of the words ending with -яш/-ящ
- Fixed the text case of "Снегорина"
- Bugs
- Fixed the extremely slow word filtering in v42.0
- Optimized the language deletion not to run all languages in one transaction. This results in reduced memory and storage usage and makes it possible to delete a lot of languages at once.
- Added a workaround for getTextBeforeCursor() taking too much time on Oppo and Motorola devices, which caused unresponsive UI when typing or deleting text.
- Slow query keys are generated only when a query is slow instead of for every query.
- 7th attempt to fix the privileged options problem and prevent the crashing when switching keyboards.
- Features
- Smarter language search tool. If a language name consists of many words, it is now possible to search by every word instead of only the first.
- Technical
- Removed an unused language property from the
.props
files - Fixed the indentation of the
.gradle
files
- Removed an unused language property from the
Full Changelog: v42.0...v43.0
v42.0
Hindi Support
Version 42.0 adds the Hindi language, fixes the crashing when changing the language on older Android versions, and allows you to adjust the Virtual Numpad width for easier one-handed typing on large phones.
What's Changed
- Languages
- Bugs
- When word filtering is on, the suggestions with diacritics are correctly sorted by length. They used to appear randomly towards the end of the list.
- Fixed a crash when switching between languages and Korean is enabled (on Android 5 and 6) (#683)
- Fixed a crash when shutting down or when switching to another keyboard
- Fixed Backspace not erasing text emoticons properly after '1' has been pressed multiple times (on Android 4 and 5 only)
- Fixed words not becoming more popular when you scroll the suggestion list before completely typing any of the words from the list.
- Fixed words not becoming more popular when filtering is on.
- Features
- It is now possible to adjust the Virtual Numpad width for easier one-handed typing on large devices (#680)
- Minor virtual keypad adjustments
- Removed the Korean punctuation hack option
- Technical
- New word processing scripts for Asian languages
- Removed the hardcoded special characters from language validation. Now reading them from the .yml.
- improved method of hiding the letters on the 0 and 1 keys, when needed
- improved the single-letter validation during build time
- upgraded com.android.application 8.7.2 -> 8.7.3
- Removed the encrypted dependencies block from the APK to make publishing on F-droid possible again
Full Changelog: v41.0...v42.0
v41.0
Korean Language and New Dictionary Format
v41.0 introduces a new dictionary format that enables support for Asian languages, improves the loading time by 30%-40% for large dictionaries, and reduces the download size. Thanks to the new format, TT9 now supports the Korean language. However, all this increases the "full" version size from 70 to 100 Mb.
Besides the above, this version also fixes several bugs and brings dictionary updates and Help screen translations into more languages.
Due to technical problems, this version will not be published on F-droid.
What's Changed
- Languages
- Added Korean. (#454) Many thanks to @ilovemegf for the crash course in Korean, for the examples and for testing!
- New technology words for Danish, German, Spanish, Finnish, French, Hinglish, Croatian, Hungarian, Indonesian, Italian, Lithuanian, Norwegian, Dutch, Polish, Portuguese (both), Romanian, Swedish, and Kiswahili
- New Bulgarian and English words
- Bugs
- Fixed incorrect text case after deleting a recomposed word
- Fixed incorrect double suggestion loading when using a word filter (#664)
- Disabled word filtering when recomposing for more useful suggestions (#668)
- Explicitly disabled the focus of the Status Bar and the Suggestion Bar to prevent unwanted highlighting on some devices (attempt to address #640)
- Swapped the functions of the RF3 key (#672)
- Fixed typing not possible in the Deezer search for songs and artists field (#670)
- Fixed word pair predictions not working when one of the words contains capital letters
- Adjusted the font size of the virtual function keys and removed some unnecessary size resources
- Fixed crashing when trying to end a DB transaction, when there is no transaction (for example, when the storage becomes full)
- Prevented unnecessary multiple insets recalculations and possible input modes re-evaluations, when a virtual numpad key is pressed on Android 15
- Reduced the swiping sensitivity of the virtual keys, to reduce the accidental swipes when only pressing the key. (attempting to address the last reported problems in #333)
- Fixed a couple of NullPointerException-related crashes when switching to another keyboard
- Features
- Removed the "Send with OK in Facebook" option. It is no longer possible to make it work. Refer to the manual for alternatives.
- Pressing left after accepting a word, erases the automatically added space, if any.
- The default layout is 'small' only if the phone has no separate Backspace key
- Help screen improvements
- Translated to Turkish, Italian, German, French, Brazilian Portuguese, Ukrainian
- Aligned the text to the left, for improved readability
- Fixed an incorrect link
- Technical
- New dictionary format for Asian language support and zip compression for reduced download size and improved loading speed (see the benchmark results in #662). However, this increased the "full" version APK size from ~70 to ~100 Mb.
- Upgraded com.android.application 8.7.1 -> 8.7.2
- Documentation update
Full Changelog: v40.0...v41.0
v40.0
Stabilization
Version 40.0 is focused on bug fixes, and speed optimizations when typing or deleting text very quickly. It also features fine-tuned on-screen keypad key dimensions and padding for improved typing ergonomy.
What's Changed
- Bugs
- Fixed: Predictive mode was not available in the Duolingo report bug dialog.
- Fixed the Fast Delete function deleting too many characters sometimes.
- Fixed invalid text case displayed in the Status Bar after recomposing a word, and then typing a new one.
- The word pair data is now deleted when the co-responding language is deleted to save storage space.
- Fixed a crash when clicking on the Donate button but there is no browser on the device
- Fixed holding the 0-key to type a zero after a space erasing the space (in Predictive Mode)
- Fixed typing the preferred instead of the selected special character, when pressing 0, scrolling the suggestions, then pressing 0 again.
- 6th attempt to fix the crash when switching to/from another keyboard (Privileged Options problem).
- Fixed a potential NullPointerException when trying to type with no language
- Fixed a crash when assigning hotkeys
- Enhancements
- Reduced the lag when typing or pressing Backspace quickly several times, while word filtering is on, by killing the database query and providing basic "A, B, C" suggestions.
- Increased the width of the virtual on-screen 0-9 keys and the arrow keys for improved typing ergonomy.
- Translated the Help section into Spanish and Russian.
- For security reasons, clicking the external links on the Help screen no longer opens the respective website directly, but instead triggers the share URL dialog.
- Removed Features
- Removed the 'send with ENTER in Google Chat' option as it no longer works.
- Technical
- upgraded com.android.application 8.6.0 -> 8.7.1
- added official support for Android 15 (upgraded the target and compile SDKs to 35)
- removed some unused code and modernized the switch() expressions
Full Changelog: v39.0...v40.0
v39.0
Unfinished Business
Version 39.0 adds Thai and Hinglish, fixes typing issues in Ukrainian and Greek, and adds about 1 million new Hebrew words with prefixes. The new features are punctuation reordering and a separate SHIFT key.
Important for non-touchscreen devices! This version will reset your hotkey settings. Pressing "✱" will toggle between upper- and lower case, and holding it will open the Command Palette, while pressing "#" will only change the input mode. See the manual for more information.
What's Changed
- Languages
- Added Hinglish.
- (#629) Added Thai, thanks to @mmmmmob in #629.
- (#634) Ukrainian and Hebrew: fixed several issues when typing words with apostrophes.
- (#607) Hebrew: added about 1 million new words with prefixes, locations, personal names, and bible words.
- Bulgarian, Portuguese: updated the word frequencies and added some new words.
- Polish: removed the obsolete "-Wan" and "-Wana"; Added "-ROM
- All Latin alphabet languages: changed the '.FM' domain to lowercase.
- English: added "Bizkit".
- Greek: ensured the semicolon and question mark are the correct Unicode characters.
- French: fixed the automatic space rules. Now space is properly added before "?", "!" etc.
- Features
- (#622) Split the "next text case" and the "next input mode" functionalities. Now, you can trigger them using separate SHIFT and Input Mode keys.
- (#498) Punctuation Reordering. You can now change the special character order on 0-key and 1-key, by going to Settings -> Keypad -> Punctuation Order. Or just use the defaults as before.
- Added a button to disable the system spell checker on the Initial Setup page.
- Smarter automatic space. It now works better next to numbers, parenthesis, quote marks, and the Spanish inverted punctuation.
- On the virtual numpad, when a key has many letters, the letter list is now abbreviated. Also, for simplicity, the accented characters in Greek and Cyrillic languages are no longer displayed on the virtual keys.
- Bugs
- Fixed an unnecessary input mode reset on start, causing the Status Bar to display uppercase as lowercase.
- Disabled recomposing while a dictionary is loading to prevent database overload.
- Fixed some issues with key swiping.
- Fixed incorrect status message being displayed when the command palette is on.
- Fixed some languages from the same country being displayed using the same code in mode ABC, e.g. Spanish and Catalan were both 'ES'
- Fixed currency selection sometimes requiring a double click.
- Fixed Backspace not being able to delete selected text.
- Fixed incorrect punctuation order in email fields and after toggling between currency and math chars.
- 5th attempt to fix the darn "privileged options" crash.
- Technical
- Simplified the virtual key title size configuration.
- Code cleanup and optimizations.
Full Changelog: v38.0...v39.0
v38.0
Next-Generation Typing
This version fixes the crashing when searching for a language and in some other more complex situations. Among the new features are: re-editing words with Backspace, fast word deletion, easier composition of new words, and significantly improved suggestions in Predictive mode.
What's Changed
- Bugs
- Fixed crashing when searching for languages
- Yet another attempt to fix the crash when switching to another keyboard (the Privileged Options problem)
- Fixed incorrect enforcing of lowercase when typing compound words like 'CD-ROM'
- Fixed the "il n'y a pas" problem. Single letters were sometimes suggested in alphabetic order instead of by popularity when typing them right after a punctuation mark.
- (#603) Fixed mixed Dialer/Contacts app always being detected as a dialer, even when it has a text field. This used to make searching for contacts impossible on Cat S22 Flip.
- (#579) Fixed various issues when typing in Ukrainian
- Fixed several broken links on the Help screen.
- Features
- (#374) Auto space improvements
- Space is added at the end of a line when this is not the last line.
- Space is added after digit+currency
- Space is no longer added after digit+colon making it easier to type time. E.g. "12:30" does not get converted to "12: 30".
- Backspace improvements
- Easier and more clear new word composition. When composing new words, they are now displayed as: "stem... ", and the options: "... +a", "... +b", "... +c", instead of entire words, "stema", "stemb", "stemc" mixed with all other suggestions.
- (#184) Enhanced word suggestions in Predictive mode. Besides remembering the most frequently used words, TT9 now remembers how words are used together, in pairs. This eliminates the problem of suggesting the same words for a given number combination twice in a row. For example, English:
on
/no
,go
/in
,am
/an
,good
/gone
/home
; French:je
/le
,me
/ne
; Bulgarian:за
/да
,се
/те
; Besides this, it improves the suggestion accuracy in general, making for the best typing experience among all available T9 keyboards at the moment. - Reduced the number of words+punctuation combinations only to the punctuation that makes sense
- Reorganized the typing settings. The Predictive and ABC mode settings are on separate screens now.
- Reorganized the Debug screen and moved the log messages to a separate screen.
- Removed the TAB key.
- (#374) Auto space improvements
- Technical
- Upgraded com.android.application 8.5.2 -> 8.6.0
- Renamed all SoftKeys for consistency and removed the unused SoftTextEditKey.
Full Changelog: v37.0...v38.0
v37.0
Vox Populi
This release fixes severe bugs that cause crashing when using Voice Input or when switching to another keyboard. It also adds the recently requested dictionary importing, hotkeys for all functions, Catalan language, and small improvements to Bulgarian, English, French, Italian, Portuguese, and Ukrainian.
What's Changed
- Languages
- Added Catalan language (#592)
- Bulgarian: new words, spelling fixes and frequencies update
- English: added new words
- Portuguese: added new words
- French: added "Rammstein" and updated the frequencies
- Italian
- restored all accidentally deleted 4-letter words (#601)
- capitalized some city and personal names
- removed Roman numbers
- Ukrainian
- fixed unexpected word suggestions when typing words with apostrophes (#579)
- fixed words combining with emojis, instead of suggesting words with apostrophes
- Bugs
- improved shutdown cleanup procedure to completely prevent the UI not disappearing when another keyboard is selected, and subsequent crashes (Privileged options problem again)
- adjusted the word search field and the 'no search result' items minimum height to 48dp
- patched an Android 9 SDK bug causing IllegalArgumentException when trying to destroy the SpeechRecognizer (#593)
- fixed incorrect font size of some items on the Settings screen
- New Stuff
- all commands can be assigned to hotkeys (#581, #575, #569)
- moved the Reverse Keypad setting under the Compatibility section
- adding words is now possible without confirmation (#575)
- it is now possible to import custom words from a CSV file (#472)
- added a real help screen instead of the GitHub page link (#9)
- added a new language selection screen containing more details about each language, and with a possibility to search for languages (#254)
- Delete Words screen improvements
- All added words are now displayed when there is no search term, instead of a blank list
- It is now possible to search words in all languages at the same time
- emojis are no longer exported in the custom words CSV
- Technical
- Code cleanup and small optimizations
- upgraded com.android.application 8.5.1 -> 8.5.2
- Documentation update
Full Changelog: v36.0...v37.0
v36.0
Copy-Pasta
This release introduces text editing functionality. You can now select, cut, copy, and paste text as if using a computer keyboard. Also, it fixes several serious bugs, like crashing when stopping the voice input, invalid special characters being suggested in email fields, causing login to be impossible in some apps, and hopefully, the crash when switching to another keyboard on Android 11.
What's Changed
- New Stuff
- Added text editing support. It is now possible to select, cut, copy, and paste text from within TT9 (#170)
- Added TAB key
- Added a 105% on-screen key height option
- Added a new Bulgarian word
- Updated com.android.application 8.5.0 -> 8.5.1
- Bugs
- Fixed the "SoftKeyXXX can only be used with a Theme.AppCompat theme" error
- Fixed the command palette keys having incorrect text size, when the icons are not available
- Attempted to fix the crash on Android 11, when switching to another keyboard (the "Privileged options must be set at most once" problem).
- Fixed a crash occurring sometimes when stopping voice input
- Fixed invalid special characters being suggested in email fields, causing login to be impossible in some apps.
Full Changelog: v35.0...v36.0
v35.0
Finalize the Virtual Keyboard
This version brings many improvements to the Virtual Keyboard, finally making it completely functional. As usual, it also includes several bug fixes and a specific optimization for Xiaomi phones.
Unfortunately, the "Send with OK in Messenger" option had to be disabled due to recent Messenger redesigns that prevented it from working. Suggestions on how to fix the problem are welcome in the corresponding GitHub issue.
What's Changed
- Virtual On-screen Keypad improvements
- Added haptic feedback setting (vibration on key press)
- Nicer Input Mode key icon
- On devices that do not support all icons, the keys are labeled with appropriate text, instead of displaying squares.
- The virtual arrow keys can now move the text cursor.
- Inactive keys are now properly displayed as disabled.
- The UI can now be resized by either holding and dragging the Settings/Command Palette key or by dragging the Status Bar. When the height becomes too small, it will automatically change the layout to "Function keys" or "Suggestion list only". Respectively, when resizing up, the layout will change to "Virtual Keypad".
- The height is automatically adjusted when the current application needs more space.
- Added a key height setting
- Reduced the maximum width on very large screens (TV sets, tablets in landscape orientation, etc) to prevent the keys from appearing too stretched.
- Added a setting for centering or aligning the UI to the left/right on large screens.
- Languages. Fixed the text case of several words in Bulgarian, English, and Portuguese.
- Bugs
- Fixed a crash on low-end devices occurring when quickly erasing all text.
- Fixed the command palette commands not working in invisible mode
- Fixed only the first word/letter suggestion being accepted in RustDesk, no matter where the scroll position was.
- Disabled the "Send with OK in Messenger" option, because it no longer works since the June 2024 Messenger update.
- Fixed the UI not appearing in the Contacts app on Xiaomi phones with Android 12 or higher.
- Technical
- Upgraded com.android.application 8.4.2 -> 8.5.0
- Upgraded gradle 8.6 -> 8.7
- Documentation update
Full Changelog: v34.0...v35.0
v34.0
Downloadable Dictionaries
Starting from this release, TT9 is going to be available in two versions: "full" and "lite". The latter will be available only on GitHub. See the documentation for more information.
Besides the above, v34.0 brings the long-awaited Vietnamese language, optimizations for specific devices, and several bug fixes.
What's Changed
- New Stuff
- "lite" APK variant (less than 2 Mb of download size). It contains no language dictionaries but instead downloads them from GitHub only when you need them.
- enabled OK when the command palette is open (#542)
- the Command Palette key both opens and closes the Command Palette; Backspace also closes the Command Palette (#542)
- key repeat protection is now enabled by default on Cat S22 Flip and Qin F21 Pro
- Languages
- Added Vietnamese (#372)
- fixed the text case of the Bulgarian word "караш".
- Bugs
- fixed dictionary loading time wrongly displayed as -0.0s, when loading more than one language at a time
- improved dialer detection on Cat S22 to fix the beeps problem, and on Android 14 to fix the UI not appearing on touchscreen phones. (#538)
- Technical
- upgraded android.application 8.4.1 -> 8.4.2
- added a Play Store download badge and updated the badge layout
- added Demo Mode for enabling all preferences when TT9 is disabled
- removed an unnecessary separator from the Arabic definition
- documentation update
Full Changelog: v33.0...v34.0