aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Zivkovic <zivkovic@google.com>2015-05-01 12:45:07 -0700
committerDan Zivkovic <zivkovic@google.com>2015-05-01 12:45:07 -0700
commitf22571e2d9756294fa2fa332a395c06010f54d92 (patch)
tree82e95c1675cbedea8d026cf15b6546739e738dba
parent89f907026434a4906ed46b83452f76424711dde8 (diff)
downloadlatinime-f22571e2d9756294fa2fa332a395c06010f54d92.tar.gz
latinime-f22571e2d9756294fa2fa332a395c06010f54d92.tar.xz
latinime-f22571e2d9756294fa2fa332a395c06010f54d92.zip
Delete history on upgrade in LatinIME.
Bug 20733902. Change-Id: Ibe27e6cafe4db87ba62d7df708229e0d8564ffa8
-rw-r--r--java/src/com/android/inputmethod/latin/DictionaryFacilitator.java6
-rw-r--r--java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java22
-rw-r--r--java/src/com/android/inputmethod/latin/SystemBroadcastReceiver.java19
3 files changed, 40 insertions, 7 deletions
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
index 9d8bdb2d1..9d30ccdeb 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
@@ -107,6 +107,10 @@ public interface DictionaryFacilitator {
Locale getLocale();
+ boolean usesContacts();
+
+ String getAccount();
+
void resetDictionaries(
final Context context,
final Locale newLocale,
@@ -162,7 +166,7 @@ public interface DictionaryFacilitator {
boolean isValidSuggestionWord(final String word);
- void clearUserHistoryDictionary(final Context context);
+ boolean clearUserHistoryDictionary(final Context context);
String dump(final Context context);
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java
index 6508eb289..6649d5574 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java
@@ -234,6 +234,16 @@ public class DictionaryFacilitatorImpl implements DictionaryFacilitator {
return mDictionaryGroup.mLocale;
}
+ @Override
+ public boolean usesContacts() {
+ return mDictionaryGroup.getSubDict(Dictionary.TYPE_CONTACTS) != null;
+ }
+
+ @Override
+ public String getAccount() {
+ return null;
+ }
+
@Nullable
private static ExpandableBinaryDictionary getSubDict(final String dictType,
final Context context, final Locale locale, final File dictFile,
@@ -660,16 +670,18 @@ public class DictionaryFacilitatorImpl implements DictionaryFacilitator {
return maxFreq;
}
- private void clearSubDictionary(final String dictName) {
+ private boolean clearSubDictionary(final String dictName) {
final ExpandableBinaryDictionary dictionary = mDictionaryGroup.getSubDict(dictName);
- if (dictionary != null) {
- dictionary.clear();
+ if (dictionary == null) {
+ return false;
}
+ dictionary.clear();
+ return true;
}
@Override
- public void clearUserHistoryDictionary(final Context context) {
- clearSubDictionary(Dictionary.TYPE_USER_HISTORY);
+ public boolean clearUserHistoryDictionary(final Context context) {
+ return clearSubDictionary(Dictionary.TYPE_USER_HISTORY);
}
@Override
diff --git a/java/src/com/android/inputmethod/latin/SystemBroadcastReceiver.java b/java/src/com/android/inputmethod/latin/SystemBroadcastReceiver.java
index a093ec6db..26c5e0034 100644
--- a/java/src/com/android/inputmethod/latin/SystemBroadcastReceiver.java
+++ b/java/src/com/android/inputmethod/latin/SystemBroadcastReceiver.java
@@ -29,13 +29,14 @@ import android.util.Log;
import android.view.inputmethod.InputMethodManager;
import android.view.inputmethod.InputMethodSubtype;
-import com.android.inputmethod.dictionarypack.CommonPreferences;
import com.android.inputmethod.dictionarypack.DictionaryPackConstants;
import com.android.inputmethod.keyboard.KeyboardLayoutSet;
import com.android.inputmethod.latin.settings.Settings;
import com.android.inputmethod.latin.setup.SetupActivity;
import com.android.inputmethod.latin.utils.UncachedInputMethodManagerUtils;
+import java.util.Locale;
+
/**
* This class detects the {@link Intent#ACTION_MY_PACKAGE_REPLACED} broadcast intent when this IME
* package has been replaced by a newer version of the same package. This class also detects
@@ -76,6 +77,22 @@ public final class SystemBroadcastReceiver extends BroadcastReceiver {
richImm.setAdditionalInputMethodSubtypes(additionalSubtypes);
toggleAppIcon(context);
downloadLatestDictionaries(context);
+ // TODO: This is only for dogfood builds. Remove this from the final release.
+ DictionaryFacilitator keyboardFacilitator =
+ DictionaryFacilitatorProvider.getDictionaryFacilitator(false);
+ boolean historyCleared = keyboardFacilitator.clearUserHistoryDictionary(context);
+ Locale keyboardLocale = keyboardFacilitator.getLocale();
+ if (historyCleared && keyboardLocale != null) {
+ keyboardFacilitator.resetDictionaries(
+ context,
+ keyboardLocale,
+ keyboardFacilitator.usesContacts(),
+ true /* history */,
+ true /* force */,
+ keyboardFacilitator.getAccount(),
+ "" /* prefix */,
+ null /* listener */);
+ }
} else if (Intent.ACTION_BOOT_COMPLETED.equals(intentAction)) {
Log.i(TAG, "Boot has been completed");
toggleAppIcon(context);