blob: bd715b3242b5d620403a3e41efead2f7cc5ce718 [file] [log] [blame]
PredictionService interface provides only one function GetPredictionList
which takes infos about previous words and current word (format details in
mojo/services/prediction/interfaces/prediction.mojom).
Connect to "mojo:prediction_service" to use the service.
Description of each class:
res/main_en.dict.sha1 is the sha1 of main_en.dict (from Android
packages/inputmethods/LatinIME/java/res/raw/main_en.dict).
main_en.dict is the binary form of English dictionary
packages/inputmethods/LatinIME/dictionaries/en_wordlist.combined.gz
of the form
packages/inputmethods/LatinIME/java/src/com/android/inputmethod
/latin/makedict/FormatSpec.java.
DictionaryService creates a latinime::DictionaryStructureWithBufferPolicy
from our dictionary file and prepares parameters (current word processed by
InputInfo) for getSuggestions if current word is not empty or getPredictions if
current word is empty (currently not working due to lack of ngram binary
dictionary) from latinime::DictionaryStructureWithBufferPolicy. After it
processes the prediction words array, it returns that to PredictionServiceImpl
which then returns back to the client.
ProximityInfoFactory, TouchPositionCorrection and KeySet provide proximity
info of the keys. TouchPositionCorrection and KeySet are hardcoded English
QWERTY keyboard values because PredictionService can't get these keyboard
values from anywhere for now.
TODO:
Add a bigram/ngram binary dictionary. Shouldn't need to change any other code
if the dictionary is of the same format as main_en.dict. If not, might need to
update third_party/android_prediction to the latest version.