* fix Predictive mode sometimes starting in UPPERCASE unexpectedly
* fixed incorrect extra auto-space when the cursor is before or in the middle of a word
* no auto-space when the next composing character is whitespace or a special one
* auto-space is added after an emoji
* added automatic delayed suggestion accept support in ABC mode
* fixed: impossible to type a letter in ABC after coming back from preferences, if the same key was pressed before opening them
* removed mEditing and simplified initial mode selection and validation
* fixed the status bar displaying incorrect text when in a limited field
* fixed incorrect auto text case being selected after toggling all modes, then going back to Predictive
* fixed the on-screen keyboard sometimes not updating when the input mode changes
* fix nullref on exiting com.android.dialer by long pressing of Back key on KYF33
* fix misleading ModeDialer.toString()
* fix textField and inputType are assumed to be defined everywhere
* fix yet another potential case of currentInputConnection = null
---------
Co-authored-by: sspanak <doftor.livain@gmail.com>
* fixed '*', '#', "." and "," not working properly in 123 mode
* fixed typing "+" by holding 0-key not working in Dialer fields
* fixed Predictive mode not allowing the same key for typing and as a hotkey, when being pressed and held, respectively.
* removed EDITING_STRICT_NUMERIC, EDITING_DIALER and deprecated mEditing
* added ModeDialer
* fixed a regession after the optimizations, that caused only 8 exact word matches to appear, when there are more
* code cleanup: replaced Thread classes with lambdas in DictionaryDb
* emoji micro optimizations
* Predictive Mode: reduced post-load processing time from 20 ms to <1 ms
* EmptyDatabaseWarning does not run unnecessary queries, when the time for the next warning has not come yet
* replaced unnecessary Handler with lambdas in EmptyDatabaseWarning and Add Word dialog
* slightly simplified the word searching, importing and clearing code
* word length is now stored in the database, instead of being calculated on-the-fly, while searching
* created sepearate indexes and queries for 2-letter and longer words; suggestion loading time reduced from 50-60 ms, peaking to: 200 ms, down to: <20 ms with peaks to: 50-60 ms.
* imporved dictionary loading speed by temporarily disabling the database indexes
* removed some unused resources and code
* removed a nonsense package.json section from .editorconfig
* minimized the usage of mEditing
* removed obsolete toggling of the system candidate view
* fixed the main view not showing up in some cases
* fixed crashing when changing the theme
* fixed 1-key not working after using it in 123 mode, then switching to ABC mode
* fixed auto-space not working with the on screen punctuation keys
* fixed on-screen punctuation keys erasing the previously typed, but unaccepted word
* fixed more auto-space issues
* fixed key repeating being reset incorrectly when holding some key
* fixed pressing 1-key accepted even if there are no more emoji, in Predictive Mode
* Soft-Keyboard numpad
* no more SoftKeyHandler, the main view is in its own package
* settings are no longer passed unnecessarilly here and there
* fixed numeric mode not working in some cases
* simplified suggestion handling
* fixed crashing when changing the phone orientation
* input mode is now displayed in a StatusBar
* status icons are no more >:)
* updated docs
* removed the EDITING_NOSHOW mode, because it became obsolete and it was preventing the StatusBar from appearing in some ABC-only fields
* OK key now attempts to send DPAD_CENTER or ENTER (if needed), in attempt to make it work consistently accross all devices
* OK is no longer ignored in numeric mode
improved auto space adjustment around '-' and '/'
improved auto space adjustment when the next character is a punctuation mark
code cleanup: moved auto text case code, auto space code and suggestion loading code to their own classes
* Language IDs are now automatically generated. No more manual housekeeping.
* The database words are properly migrated to avoid dictionary re-import, because of the new IDs
* No unnecessary notifications when 'change language' key is pressed, but there is only one language
* Database code cleanup
* Moved the database exceptions and room classes to separate packages
* Migrations done the right way
* Updated the contribution guide
* more dictionary validations during build time (empty line and punctuation presence)
* slightly improved dictionary loading speed
* removed a blank line from Ukrainian
* OK now performs the default application action correctly, when an action is allowed (e.g. send a message, go to a URL or the next form field)
* updated manual