Fix for 2148982: Keyboard freezes while typing
Contacts dictionary code was being triggered too frequently during sync and during presence updates and this seems expensive for accounts with a lot of contacts. Throttling the contacts read to every 30 minutes.main
parent
3fd9d9e3e0
commit
b3f6d58b6e
|
@ -16,16 +16,11 @@
|
|||
|
||||
package com.android.inputmethod.latin;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.database.ContentObserver;
|
||||
import android.database.Cursor;
|
||||
import android.provider.ContactsContract.Contacts;
|
||||
import android.util.Log;
|
||||
|
||||
public class ContactsDictionary extends ExpandableDictionary {
|
||||
|
||||
|
@ -40,6 +35,8 @@ public class ContactsDictionary extends ExpandableDictionary {
|
|||
|
||||
private boolean mRequiresReload;
|
||||
|
||||
private long mLastLoadedContacts;
|
||||
|
||||
public ContactsDictionary(Context context) {
|
||||
super(context);
|
||||
// Perform a managed query. The Activity will handle closing and requerying the cursor
|
||||
|
@ -64,12 +61,17 @@ public class ContactsDictionary extends ExpandableDictionary {
|
|||
}
|
||||
|
||||
private synchronized void loadDictionary() {
|
||||
Cursor cursor = getContext().getContentResolver()
|
||||
.query(Contacts.CONTENT_URI, PROJECTION, null, null, null);
|
||||
if (cursor != null) {
|
||||
addWords(cursor);
|
||||
long now = android.os.SystemClock.uptimeMillis();
|
||||
if (mLastLoadedContacts == 0
|
||||
|| now - mLastLoadedContacts > 30 * 60 * 1000 /* 30 minutes */) {
|
||||
Cursor cursor = getContext().getContentResolver()
|
||||
.query(Contacts.CONTENT_URI, PROJECTION, null, null, null);
|
||||
if (cursor != null) {
|
||||
addWords(cursor);
|
||||
}
|
||||
mRequiresReload = false;
|
||||
mLastLoadedContacts = now;
|
||||
}
|
||||
mRequiresReload = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in New Issue