diff options
author | 2015-02-19 19:49:07 +0000 | |
---|---|---|
committer | 2015-02-19 19:49:07 +0000 | |
commit | e3e7589f8570390184312d776d0b53a248d66e3d (patch) | |
tree | ec7297b53dee694b99674c0cbca1703ce7d3587d /java/src/com/android/inputmethod/latin/ContactsContentObserver.java | |
parent | baefd1c87ec46bccda76cdafc4b8b9eb534a5fd8 (diff) | |
parent | 0b03f13cabec84d2d841fde47ce9fec0d531b6a1 (diff) | |
download | latinime-e3e7589f8570390184312d776d0b53a248d66e3d.tar.gz latinime-e3e7589f8570390184312d776d0b53a248d66e3d.tar.xz latinime-e3e7589f8570390184312d776d0b53a248d66e3d.zip |
am 0b03f13c: Sanitize the usage of executors.
* commit '0b03f13cabec84d2d841fde47ce9fec0d531b6a1':
Sanitize the usage of executors.
Diffstat (limited to 'java/src/com/android/inputmethod/latin/ContactsContentObserver.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/ContactsContentObserver.java | 41 |
1 files changed, 19 insertions, 22 deletions
diff --git a/java/src/com/android/inputmethod/latin/ContactsContentObserver.java b/java/src/com/android/inputmethod/latin/ContactsContentObserver.java index 019d17d56..b23226dce 100644 --- a/java/src/com/android/inputmethod/latin/ContactsContentObserver.java +++ b/java/src/com/android/inputmethod/latin/ContactsContentObserver.java @@ -23,22 +23,21 @@ import android.os.SystemClock; import android.provider.ContactsContract.Contacts; import android.util.Log; -import com.android.inputmethod.annotations.UsedForTesting; import com.android.inputmethod.latin.ContactsManager.ContactsChangedListener; import com.android.inputmethod.latin.utils.ExecutorUtils; import java.util.ArrayList; -import java.util.concurrent.ExecutorService; /** - * A content observer that listens to updates to content provider {@link Contacts.CONTENT_URI}. + * A content observer that listens to updates to content provider {@link Contacts#CONTENT_URI}. */ // TODO:add test -public class ContactsContentObserver { +public class ContactsContentObserver implements Runnable { private static final String TAG = ContactsContentObserver.class.getSimpleName(); private static final boolean DEBUG = false; - private ContentObserver mObserver; + private ContentObserver mContentObserver; + private ContactsChangedListener mContactsChangedListener; private final Context mContext; private final ContactsManager mManager; @@ -52,29 +51,27 @@ public class ContactsContentObserver { if (DEBUG) { Log.d(TAG, "Registered Contacts Content Observer"); } - mObserver = new ContentObserver(null /* handler */) { + mContactsChangedListener = listener; + mContentObserver = new ContentObserver(null /* handler */) { @Override public void onChange(boolean self) { - getBgExecutor().execute(new Runnable() { - @Override - public void run() { - if (haveContentsChanged()) { - if (DEBUG) { - Log.d(TAG, "Contacts have changed; notifying listeners"); - } - listener.onContactsChange(); - } - } - }); + // TODO(zivkovic): Limit the queue to 1 instance of ContactsContentObserver. + ExecutorUtils.getExecutorForDynamicLanguageModelUpdate() + .execute(ContactsContentObserver.this); } }; final ContentResolver contentResolver = mContext.getContentResolver(); - contentResolver.registerContentObserver(Contacts.CONTENT_URI, true, mObserver); + contentResolver.registerContentObserver(Contacts.CONTENT_URI, true, mContentObserver); } - @UsedForTesting - private ExecutorService getBgExecutor() { - return ExecutorUtils.getExecutor("Check Contacts"); + @Override + public void run() { + if (haveContentsChanged()) { + if (DEBUG) { + Log.d(TAG, "Contacts have changed; notifying listeners"); + } + mContactsChangedListener.onContactsChange(); + } } private boolean haveContentsChanged() { @@ -105,6 +102,6 @@ public class ContactsContentObserver { } public void unregister() { - mContext.getContentResolver().unregisterContentObserver(mObserver); + mContext.getContentResolver().unregisterContentObserver(mContentObserver); } } |