Delete history on upgrade in LatinIME.
Bug 20733902. Change-Id: Ibe27e6cafe4db87ba62d7df708229e0d8564ffa8main
parent
89f9070264
commit
f22571e2d9
|
@ -107,6 +107,10 @@ public interface DictionaryFacilitator {
|
||||||
|
|
||||||
Locale getLocale();
|
Locale getLocale();
|
||||||
|
|
||||||
|
boolean usesContacts();
|
||||||
|
|
||||||
|
String getAccount();
|
||||||
|
|
||||||
void resetDictionaries(
|
void resetDictionaries(
|
||||||
final Context context,
|
final Context context,
|
||||||
final Locale newLocale,
|
final Locale newLocale,
|
||||||
|
@ -162,7 +166,7 @@ public interface DictionaryFacilitator {
|
||||||
|
|
||||||
boolean isValidSuggestionWord(final String word);
|
boolean isValidSuggestionWord(final String word);
|
||||||
|
|
||||||
void clearUserHistoryDictionary(final Context context);
|
boolean clearUserHistoryDictionary(final Context context);
|
||||||
|
|
||||||
String dump(final Context context);
|
String dump(final Context context);
|
||||||
|
|
||||||
|
|
|
@ -234,6 +234,16 @@ public class DictionaryFacilitatorImpl implements DictionaryFacilitator {
|
||||||
return mDictionaryGroup.mLocale;
|
return mDictionaryGroup.mLocale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean usesContacts() {
|
||||||
|
return mDictionaryGroup.getSubDict(Dictionary.TYPE_CONTACTS) != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getAccount() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private static ExpandableBinaryDictionary getSubDict(final String dictType,
|
private static ExpandableBinaryDictionary getSubDict(final String dictType,
|
||||||
final Context context, final Locale locale, final File dictFile,
|
final Context context, final Locale locale, final File dictFile,
|
||||||
|
@ -660,16 +670,18 @@ public class DictionaryFacilitatorImpl implements DictionaryFacilitator {
|
||||||
return maxFreq;
|
return maxFreq;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void clearSubDictionary(final String dictName) {
|
private boolean clearSubDictionary(final String dictName) {
|
||||||
final ExpandableBinaryDictionary dictionary = mDictionaryGroup.getSubDict(dictName);
|
final ExpandableBinaryDictionary dictionary = mDictionaryGroup.getSubDict(dictName);
|
||||||
if (dictionary != null) {
|
if (dictionary == null) {
|
||||||
dictionary.clear();
|
return false;
|
||||||
}
|
}
|
||||||
|
dictionary.clear();
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void clearUserHistoryDictionary(final Context context) {
|
public boolean clearUserHistoryDictionary(final Context context) {
|
||||||
clearSubDictionary(Dictionary.TYPE_USER_HISTORY);
|
return clearSubDictionary(Dictionary.TYPE_USER_HISTORY);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -29,13 +29,14 @@ import android.util.Log;
|
||||||
import android.view.inputmethod.InputMethodManager;
|
import android.view.inputmethod.InputMethodManager;
|
||||||
import android.view.inputmethod.InputMethodSubtype;
|
import android.view.inputmethod.InputMethodSubtype;
|
||||||
|
|
||||||
import com.android.inputmethod.dictionarypack.CommonPreferences;
|
|
||||||
import com.android.inputmethod.dictionarypack.DictionaryPackConstants;
|
import com.android.inputmethod.dictionarypack.DictionaryPackConstants;
|
||||||
import com.android.inputmethod.keyboard.KeyboardLayoutSet;
|
import com.android.inputmethod.keyboard.KeyboardLayoutSet;
|
||||||
import com.android.inputmethod.latin.settings.Settings;
|
import com.android.inputmethod.latin.settings.Settings;
|
||||||
import com.android.inputmethod.latin.setup.SetupActivity;
|
import com.android.inputmethod.latin.setup.SetupActivity;
|
||||||
import com.android.inputmethod.latin.utils.UncachedInputMethodManagerUtils;
|
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
|
* 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
|
* 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);
|
richImm.setAdditionalInputMethodSubtypes(additionalSubtypes);
|
||||||
toggleAppIcon(context);
|
toggleAppIcon(context);
|
||||||
downloadLatestDictionaries(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)) {
|
} else if (Intent.ACTION_BOOT_COMPLETED.equals(intentAction)) {
|
||||||
Log.i(TAG, "Boot has been completed");
|
Log.i(TAG, "Boot has been completed");
|
||||||
toggleAppIcon(context);
|
toggleAppIcon(context);
|
||||||
|
|
Loading…
Reference in New Issue