Fix a bug where Latin IME crashes on spell checker request

Bug: 6611183
Change-Id: I8a879feb598e1ac55d73f9cb27e54aa533d3a010
main
Jean Chalard 2012-06-05 16:33:21 +09:00
parent 7f7739fee8
commit a6166d3776
2 changed files with 13 additions and 6 deletions

View File

@ -20,12 +20,13 @@ import android.content.Context;
import com.android.inputmethod.keyboard.ProximityInfo;
import java.util.Locale;
public class SynchronouslyLoadedContactsBinaryDictionary extends ContactsBinaryDictionary {
private boolean mClosed;
public SynchronouslyLoadedContactsBinaryDictionary(final Context context) {
// TODO: add locale information.
super(context, Suggest.DIC_CONTACTS, null);
public SynchronouslyLoadedContactsBinaryDictionary(final Context context, final Locale locale) {
super(context, Suggest.DIC_CONTACTS, locale);
}
@Override
@ -51,4 +52,4 @@ public class SynchronouslyLoadedContactsBinaryDictionary extends ContactsBinaryD
mClosed = true;
super.close();
}
}
}

View File

@ -155,7 +155,9 @@ public class AndroidSpellCheckerService extends SpellCheckerService
private void startUsingContactsDictionaryLocked() {
if (null == mContactsDictionary) {
if (LatinIME.USE_BINARY_CONTACTS_DICTIONARY) {
mContactsDictionary = new SynchronouslyLoadedContactsBinaryDictionary(this);
// TODO: use the right locale for each session
mContactsDictionary =
new SynchronouslyLoadedContactsBinaryDictionary(this, Locale.getDefault());
} else {
mContactsDictionary = new SynchronouslyLoadedContactsDictionary(this);
}
@ -436,7 +438,11 @@ public class AndroidSpellCheckerService extends SpellCheckerService
// TODO: revert to the concrete type when USE_BINARY_CONTACTS_DICTIONARY is no
// longer needed
if (LatinIME.USE_BINARY_CONTACTS_DICTIONARY) {
mContactsDictionary = new SynchronouslyLoadedContactsBinaryDictionary(this);
// TODO: use the right locale. We can't do it right now because the
// spell checker is reusing the contacts dictionary across sessions
// without regard for their locale, so we need to fix that first.
mContactsDictionary = new SynchronouslyLoadedContactsBinaryDictionary(this,
Locale.getDefault());
} else {
mContactsDictionary = new SynchronouslyLoadedContactsDictionary(this);
}