diff options
author | 2013-08-12 12:20:18 +0900 | |
---|---|---|
committer | 2013-08-12 14:48:45 +0900 | |
commit | 8c4fcb108fb0da7544edf32ccafd7eb8a0178200 (patch) | |
tree | c0efedf4d1792e221ef7a141f5c830f3f30be946 /java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdateSession.java | |
parent | 4a2f6a22167e336d2d21c51280de4e876b4a8f06 (diff) | |
download | latinime-8c4fcb108fb0da7544edf32ccafd7eb8a0178200.tar.gz latinime-8c4fcb108fb0da7544edf32ccafd7eb8a0178200.tar.xz latinime-8c4fcb108fb0da7544edf32ccafd7eb8a0178200.zip |
Add PersionalizationDictionaryRegister
Bug: 9429906
Change-Id: Ibd4d5cedb371c0b4ee1342a3e6d221c9e34c2402
Diffstat (limited to 'java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdateSession.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdateSession.java | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdateSession.java b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdateSession.java index d62aec19d..e9dbbc273 100644 --- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdateSession.java +++ b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdateSession.java @@ -43,18 +43,36 @@ public abstract class PersonalizationDictionaryUpdateSession { } // TODO: Use a dynamic binary dictionary instead - public WeakReference<DynamicPredictionDictionaryBase> mDictionary; + public WeakReference<DynamicPredictionDictionaryBase> mPredictionDictionary; + public String mLocale; public abstract void onDictionaryReady(); - public void setDictionary(DynamicPredictionDictionaryBase dictionary) { - mDictionary = new WeakReference<DynamicPredictionDictionaryBase>(dictionary); + public void setPredictionDictionary(String locale, DynamicPredictionDictionaryBase dictionary) { + mPredictionDictionary = new WeakReference<DynamicPredictionDictionaryBase>(dictionary); + mLocale = locale; + } + + protected DynamicPredictionDictionaryBase getPredictionDictionary() { + return mPredictionDictionary == null ? null : mPredictionDictionary.get(); + } + + private void unsetPredictionDictionary() { + final DynamicPredictionDictionaryBase dictionary = getPredictionDictionary(); + if (dictionary == null) { + return; + } + dictionary.unRegisterUpdateSession(this); + } + + + public void closeSession() { + unsetPredictionDictionary(); } public void addToPersonalizationDictionary( final ArrayList<PersonalizationLanguageModelParam> lmParams) { - final DynamicPredictionDictionaryBase dictionary = mDictionary == null - ? null : mDictionary.get(); + final DynamicPredictionDictionaryBase dictionary = getPredictionDictionary(); if (dictionary == null) { return; } |