am 6b6ae29b: am 78c46117: Fix LatinIME crashing due to crash in Contacts DB

Merge commit '6b6ae29b61acf1f8317f5dd261d5c74ec51b155e'

* commit '6b6ae29b61acf1f8317f5dd261d5c74ec51b155e':
  Fix LatinIME crashing due to crash in Contacts DB
main
Ken Wakasa 2010-08-24 10:16:17 -07:00 committed by Android Git Automerger
commit 48852f33b3
1 changed files with 47 additions and 38 deletions

View File

@ -32,6 +32,8 @@ public class ContactsDictionary extends ExpandableDictionary {
Contacts.DISPLAY_NAME, Contacts.DISPLAY_NAME,
}; };
private static final String TAG = "ContactsDictionary";
/** /**
* Frequency for contacts information into the dictionary * Frequency for contacts information into the dictionary
*/ */
@ -80,11 +82,15 @@ public class ContactsDictionary extends ExpandableDictionary {
@Override @Override
public void loadDictionaryAsync() { public void loadDictionaryAsync() {
try {
Cursor cursor = getContext().getContentResolver() Cursor cursor = getContext().getContentResolver()
.query(Contacts.CONTENT_URI, PROJECTION, null, null, null); .query(Contacts.CONTENT_URI, PROJECTION, null, null, null);
if (cursor != null) { if (cursor != null) {
addWords(cursor); addWords(cursor);
} }
} catch(IllegalStateException e) {
Log.e(TAG, "Contacts DB is having problems");
}
mLastLoadedContacts = SystemClock.uptimeMillis(); mLastLoadedContacts = SystemClock.uptimeMillis();
} }
@ -92,6 +98,7 @@ public class ContactsDictionary extends ExpandableDictionary {
clearDictionary(); clearDictionary();
final int maxWordLength = getMaxWordLength(); final int maxWordLength = getMaxWordLength();
try {
if (cursor.moveToFirst()) { if (cursor.moveToFirst()) {
while (!cursor.isAfterLast()) { while (!cursor.isAfterLast()) {
String name = cursor.getString(INDEX_NAME); String name = cursor.getString(INDEX_NAME);
@ -126,18 +133,20 @@ public class ContactsDictionary extends ExpandableDictionary {
if (!TextUtils.isEmpty(prevWord)) { if (!TextUtils.isEmpty(prevWord)) {
// TODO Do not add email address // TODO Do not add email address
// Not so critical // Not so critical
super.setBigram(prevWord, word, FREQUENCY_FOR_CONTACTS_BIGRAM); super.setBigram(prevWord, word,
FREQUENCY_FOR_CONTACTS_BIGRAM);
} }
prevWord = word; prevWord = word;
} }
} }
} }
} }
cursor.moveToNext(); cursor.moveToNext();
} }
} }
cursor.close(); cursor.close();
} catch(IllegalStateException e) {
Log.e(TAG, "Contacts DB is having problems");
}
} }
} }