aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorKeisuke Kuroyanagi <ksk@google.com>2014-01-15 17:54:17 -0800
committerKeisuke Kuroyanagi <ksk@google.com>2014-01-15 17:54:17 -0800
commit12474634c50e62b2d911d6c3126f591f9f373440 (patch)
tree2fa26de9c80b6f000b3d1afae7f71633260be454 /java/src
parent118a4fc2b7fc4f0ba1de78eb0ef72b473a6ecfd5 (diff)
downloadlatinime-12474634c50e62b2d911d6c3126f591f9f373440.tar.gz
latinime-12474634c50e62b2d911d6c3126f591f9f373440.tar.xz
latinime-12474634c50e62b2d911d6c3126f591f9f373440.zip
Update personalization dict via dictionary facilitator.
Change-Id: I512c41e12d8d31f03b5df6ad03bf7711611c80f5
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java27
-rw-r--r--java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionary.java15
-rw-r--r--java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdateSession.java86
-rw-r--r--java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java7
4 files changed, 27 insertions, 108 deletions
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
index 5698384fc..fb9517220 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
@@ -28,6 +28,7 @@ import com.android.inputmethod.latin.personalization.PersonalizationHelper;
import com.android.inputmethod.latin.personalization.UserHistoryDictionary;
import com.android.inputmethod.latin.settings.SettingsValues;
import com.android.inputmethod.latin.utils.CollectionUtils;
+import com.android.inputmethod.latin.utils.LanguageModelParam;
import java.io.File;
import java.util.ArrayList;
@@ -223,6 +224,10 @@ public class DictionaryFacilitatorForSuggest {
return null != mMainDictionary && mMainDictionary.isInitialized();
}
+ public boolean hasPersonalizationDictionary() {
+ return null != mPersonalizationDictionary;
+ }
+
public void waitForLoadingMainDictionary(final long timeout, final TimeUnit unit)
throws InterruptedException {
mLatchForWaitingLoadingMainDictionary.await(timeout, unit);
@@ -476,4 +481,26 @@ public class DictionaryFacilitatorForSuggest {
oldDict.close();
}
}
+
+ // This method gets called only when the IME receives a notification to remove the
+ // personalization dictionary.
+ public void clearPersonalizationDictionary() {
+ if (!hasPersonalizationDictionary()) {
+ return;
+ }
+ mPersonalizationDictionary.clearAndFlushDictionary();
+ }
+
+ public void addMultipleDictionaryEntriesToPersonalizationDictionary(
+ final ArrayList<LanguageModelParam> languageModelParams,
+ final ExpandableBinaryDictionary.AddMultipleDictionaryEntriesCallback callback) {
+ if (!hasPersonalizationDictionary()) {
+ if (callback != null) {
+ callback.onFinished();
+ }
+ return;
+ }
+ mPersonalizationDictionary.addMultipleDictionaryEntriesToDictionary(languageModelParams,
+ callback);
+ }
}
diff --git a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionary.java b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionary.java
index 9b2b981d5..7c9b2a169 100644
--- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionary.java
+++ b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionary.java
@@ -18,10 +18,8 @@ package com.android.inputmethod.latin.personalization;
import com.android.inputmethod.annotations.UsedForTesting;
import com.android.inputmethod.latin.Dictionary;
-import com.android.inputmethod.latin.utils.CollectionUtils;
import java.io.File;
-import java.util.ArrayList;
import java.util.Locale;
import android.content.Context;
@@ -29,9 +27,6 @@ import android.content.Context;
public class PersonalizationDictionary extends DecayingExpandableBinaryDictionaryBase {
/* package */ static final String NAME = PersonalizationDictionary.class.getSimpleName();
- private final ArrayList<PersonalizationDictionaryUpdateSession> mSessions =
- CollectionUtils.newArrayList();
-
/* package */ PersonalizationDictionary(final Context context, final Locale locale) {
super(context, locale, Dictionary.TYPE_PERSONALIZATION,
getDictNameWithLocale(NAME, locale));
@@ -44,14 +39,4 @@ public class PersonalizationDictionary extends DecayingExpandableBinaryDictionar
super(context, locale, Dictionary.TYPE_PERSONALIZATION, getDictNameWithLocale(NAME, locale),
dictFile);
}
-
- public void registerUpdateSession(PersonalizationDictionaryUpdateSession session) {
- session.setPredictionDictionary(this);
- mSessions.add(session);
- session.onDictionaryReady();
- }
-
- public void unRegisterUpdateSession(PersonalizationDictionaryUpdateSession session) {
- mSessions.remove(session);
- }
}
diff --git a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdateSession.java b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdateSession.java
deleted file mode 100644
index bc11db289..000000000
--- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdateSession.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.personalization;
-
-import android.content.Context;
-
-import com.android.inputmethod.latin.ExpandableBinaryDictionary;
-import com.android.inputmethod.latin.utils.LanguageModelParam;
-
-import java.lang.ref.WeakReference;
-import java.util.ArrayList;
-import java.util.Locale;
-
-/**
- * This class is a session where a data provider can communicate with a personalization
- * dictionary.
- */
-public abstract class PersonalizationDictionaryUpdateSession {
- public WeakReference<PersonalizationDictionary> mDictionary;
- public final Locale mSystemLocale;
-
- public PersonalizationDictionaryUpdateSession(final Locale locale) {
- mSystemLocale = locale;
- }
-
- public abstract void onDictionaryReady();
-
- public abstract void onDictionaryClosed(final Context context);
-
- public void setPredictionDictionary(final PersonalizationDictionary dictionary) {
- mDictionary = new WeakReference<PersonalizationDictionary>(dictionary);
- }
-
- protected PersonalizationDictionary getDictionary() {
- return mDictionary == null ? null : mDictionary.get();
- }
-
- private void unsetDictionary() {
- final PersonalizationDictionary dictionary = getDictionary();
- if (dictionary == null) {
- return;
- }
- dictionary.unRegisterUpdateSession(this);
- }
-
- public void clearAndFlushDictionary() {
- final PersonalizationDictionary dictionary = getDictionary();
- if (dictionary == null) {
- return;
- }
- dictionary.clearAndFlushDictionary();
- }
-
- public void closeSession(final Context context) {
- unsetDictionary();
- onDictionaryClosed(context);
- }
-
- // TODO: Support multi locale.
- public void addMultipleDictionaryEntriesToDictionary(
- final ArrayList<LanguageModelParam> languageModelParams,
- final ExpandableBinaryDictionary.AddMultipleDictionaryEntriesCallback callback) {
- final PersonalizationDictionary dictionary = getDictionary();
- if (dictionary == null) {
- if (callback != null) {
- callback.onFinished();
- }
- return;
- }
- dictionary.addMultipleDictionaryEntriesToDictionary(languageModelParams, callback);
- }
-}
diff --git a/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java b/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
index 38b22e5f6..df64bcec1 100644
--- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
+++ b/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
@@ -71,13 +71,6 @@ public class PersonalizationHelper {
}
}
- public static void registerPersonalizationDictionaryUpdateSession(final Context context,
- final PersonalizationDictionaryUpdateSession session, final Locale locale) {
- final PersonalizationDictionary personalizationDictionary =
- getPersonalizationDictionary(context, locale);
- personalizationDictionary.registerUpdateSession(session);
- }
-
public static PersonalizationDictionary getPersonalizationDictionary(
final Context context, final Locale locale) {
final String localeStr = locale.toString();