Conversation
|
Cool, this is what I am looking forward for unexpected keyboard |
a01c4e3 to
b49a283
Compare
|
wow, I just found this and installed the debug build from here, correct? https://github.com/Julow/Unexpected-Keyboard/actions/runs/20557555689 however, I'm still struggling to test this properly:
what am I doing wrong? |
|
You are not doing anything wrong. This is how the interface is at this stage and that's what I'm working on next. |
|
ok, with only one dictionary installed, it works. there are max 3 suggestions, which can be chosen. this looks good for the basic functionality! |
|
I've tried the recent builds, Downloaded the dictionary when prompted, but it kept prompting to download it (even though i had it downloaded) and could not get it working. I'll keep an eye out for future builds! |
|
Thanks you all for trying :) |
|
No, thank you for working on it!! you have no idea how much i've wanted this feature.
Looking forward to future updates! |
|
Thanks for your help :)
I could reproduce this bug. It happens when the keyboard was not yet enabled in the settings. Was that the case for you as well ?
This is very annoying! I should fix that.
This is intended, at least for the initial version. I'm trying to come up with a UX that lets the user choose when to correct or not.
Good idea !
This is planned :)
I didn't plan to do that initially but this can be added easily. I'll take a note for future versions. |
Build cdict's C library and Java bindings and link them into the app.
Uses libcdict to query a dictionary each time the word before the cursor changes. The candidates view is updated. The dictionary is embedded into the app for now.
The main package is getting big.
Add an activity accessible from the launcher app that lists available dictionaries with a download button. The Dictionaries class manages installed dictionaries. Dictionaries are installed as individual files into the app's private directory. The DictionaryListView view shows the list of available dictionaries and handles downloading and installing them.
The message is updated when the config is refreshed.
This is an important information that users might want to know before clicking download.
Disables automatic compression, which doesn't always work, and instead compress statically the dictionaries on the server. Compression is disabled in the request and then forced on the client side.
Update the CI to work with the new vendor/cdict submodule. The checkout action is upgraded to v6.
`dictionaries.xml` replaces the generated `SupportedDictionaries.java` and `dict_names.xml`. It is generated from the Unexpected-Keyboard-dictionaries project and contains the list of available dictionaries. This file is easier to update when the dictionaries are re-built and can be parsed by gen_method_xml.py later to assign dictionaries to locales.
`gen_method_xml.py` reads `res/values/dictionaries.xml` and assign a dictionary to each subtypes. The script is rewritten to avoid using large format strings.
Instead of the full list of the supported dictionaries.
Use the information in DeviceLocales to select the right dictionary. A cache is added into Dictionaries to avoid unecessary loads when switching locale.
The bug was caused by having two instances of Dictionaries.
This was an attempt at making the icons adapt to the app theme but wasn't working as intended.
b4b276a to
647cbeb
Compare
yes, i just confirmed this. |
|
Thanks :) For this bug, I think it's not useful to add code and handle this case. Perhaps the "enable" button should be redesigned and be the only thing on the screen in this case. |
|
I've added some improvements and I'll merge now. Thanks everyone for your help debugging this :) A few things that I'll do soon are:
|
This adds dictionary-based spell checking to the keyboard. The keyboard looks at the word being typed and matches it against a dictionary to either complete the rest of the word or find alternative spellings. The core of this feature is implemented in cdict, which is included as a submodule in vendor/cidct. Cdict is developped at https://github.com/Julow/cdict The dictionaries are hosted at https://github.com/Julow/Unexpected-Keyboard-dictionaries/ The wordlists used to build the dictionaries are the same ones used by HeliBoard from https://codeberg.org/Helium314/aosp-dictionaries - Add an activity accessible from the launcher app that lists available dictionaries with a download button. The DictionaryListView view shows the list of available dictionaries and handles downloading and installing them. - The Dictionaries class manages installed dictionaries. Dictionaries are installed as individual files into the app's private directory. - Available dictionaries are listed in dictionaries.xml, which is generated when building Unexpected-Keyboard-dictionaries. method.xml mentions the dictionary name for each locales.
|
I improved the suggestions for words with diacritics in #1223 |
Hello my dear — I did some testing and wrote down my feedback below. Also, I may be over-reporting or going off on tangents a bit, so if possible, could you let me know which areas would be most useful to focus on in future builds? I’m not a developer myself, so I’d really appreciate some guidance on where targeted testing would help you most. That way I can hopefully give feedback that is more meaningful and easier to act on, Thank you :) Undo / autocorrect behavior
Suggestion logic
Termux-specific issues Autocorrection behaves differently inside Termux compared to normal text fields.
Another example:
Also, in a normal text field, "whats" does not get corrected to "What's", which feels inconsistent because other contractions like "what're", "you're", and "hasn't" do get corrected properly. Dictionary installation / availability
Language switching / mixed-language autocorrect There seems to be some autocorrect contamination after switching languages.
Example:
This issue goes away if I switch to another keyboard and then switch back to Unexpected Keyboard. Extra note:
App-specific behavior
|
|
Thanks for your detailed feedback :) Your testing work is impressive! I've fixed the easiest issues and I'll work on the more complex ones soon. The latest debug build is here if you want to see the keyboard improved thanks to you: https://github.com/Julow/Unexpected-Keyboard/actions/runs/24254534547
It's most useful to try out things that you do usually with the keyboard. Your feedback is especially useful because you do things that I don't usually do.
Noted!
Fixed in #1226
I can't reproduce this. Can you share more ?
Noted!
That's a silly bug! Fixed: #1227
This is unavoidable as Android avoids sharing information with a keyboard that was not enabled.
Fixed in #1229
I think Gboard avoids doing autocorrect when the word is too different from what was typed while Unexpected just use the middle suggestion.
This seems to be a bug in Google Keep but we can work around it: #1230 |
|
The debug build with the above fixes and the improved suggestions is here: https://github.com/Julow/Unexpected-Keyboard/actions/runs/24254705134 |
|
Glad to be of help! I confirm the oddities with google keep, termux and multi languages is not appearing anymore.
Please disregard my comment on this, it was actually working as intended.
Just to clarify on this, "dictionarirs" was the one word where undo on backspace showed the intended behavior, if i undo its autocorrection and then press space again, it would stay as "dictionarirs". Whereas every other word would have been replaced by the middle suggestion on the space press after undo. let me know when you fix the undo on backspace, once its fixed i can use the keyboard daily and give feedback. Cheers! |
|
I've added a space character after the completed word (#1232). This doesn't look like much but for me it makes autocorrect usable. Thanks again for your help :)
That was because of a bug. |

This adds dictionary-based spell checking to the keyboard. The keyboard looks at the word being typed and matches it against a dictionary to either complete the rest of the word or find alternative spellings.
The core of this feature is implemented in cdict, a project that I developed for this purpose.
The dictionaries are hosted in this repository and can be downloaded from within the app. The wordlists used to build the dictionaries are the same ones used by HeliBoard (from this repository).
This is still a work in progress. I plan to improve the interface and add more features:
This work was fully funded by the NLnet foundation. I would like to thanks them for giving me the time required to work on this feature.
Closes #343 #716 #745 #596 #571
This is the most requested feature and I hope it will be enjoyed.
I'm eager to receive feedback from anyone willing to test this new feature.