summaryrefslogtreecommitdiffstats
path: root/info_lookup
diff options
context:
space:
mode:
authoremancebo <emancebo@cyngn.com>2015-08-27 12:12:55 -0700
committerRohit Yengisetty <rohit@cyngn.com>2015-11-17 22:43:10 -0800
commitb474ca6dbda4401d6dfb484802984cd76a3c20e6 (patch)
tree3370b3f60b92685373b77760e596ec69e1229c32 /info_lookup
parenta91eea93664ead559b0a3a8022159a6ddf0a5e3d (diff)
downloadandroid_packages_apps_ContactsCommon-b474ca6dbda4401d6dfb484802984cd76a3c20e6.tar.gz
android_packages_apps_ContactsCommon-b474ca6dbda4401d6dfb484802984cd76a3c20e6.tar.bz2
android_packages_apps_ContactsCommon-b474ca6dbda4401d6dfb484802984cd76a3c20e6.zip
LookupProvider updates
- Add isEnabled to the interface - Make sure to start thread before getting current looper - Make handler thread initialize idempotent - Add destroy method to shut down thread and clean up lookup provider Change-Id: Iaf350f1381aed69765adbef1752990126cfbeeda
Diffstat (limited to 'info_lookup')
-rw-r--r--info_lookup/src/com/cyanogen/lookup/phonenumber/LookupHandlerThread.java34
-rw-r--r--info_lookup/src/com/cyanogen/lookup/phonenumber/contract/LookupProvider.java5
-rw-r--r--info_lookup/src/com/cyanogen/lookup/phonenumber/provider/LookupProviderImpl.java6
3 files changed, 36 insertions, 9 deletions
diff --git a/info_lookup/src/com/cyanogen/lookup/phonenumber/LookupHandlerThread.java b/info_lookup/src/com/cyanogen/lookup/phonenumber/LookupHandlerThread.java
index 5f59d481..4a594f3a 100644
--- a/info_lookup/src/com/cyanogen/lookup/phonenumber/LookupHandlerThread.java
+++ b/info_lookup/src/com/cyanogen/lookup/phonenumber/LookupHandlerThread.java
@@ -17,29 +17,45 @@ public class LookupHandlerThread extends HandlerThread implements Handler.Callba
private Handler mHandler;
private LookupProviderImpl mLookupProvider;
private HashSet<LookupRequest> mSubmittedRequests;
+ private boolean mInitialized = false;
public LookupHandlerThread(String name, Context ctx) {
super(name);
mContext = ctx;
+ mLookupProvider = new LookupProviderImpl(mContext, null);
}
public LookupHandlerThread(String name, int priority, Context ctx) {
super(name, priority);
mContext = ctx;
+ mLookupProvider = new LookupProviderImpl(mContext, null);
}
public boolean initialize() {
- mLookupProvider = new LookupProviderImpl(mContext, null);
- boolean isSuccessful = mLookupProvider.initialize();
- if (isSuccessful) {
+ if (mInitialized) {
+ return true;
+ }
+
+ mInitialized = mLookupProvider.initialize();
+ if (mInitialized) {
mSubmittedRequests = new HashSet<>();
- mHandler = new Handler(getLooper(), this);
start();
- } else {
- mLookupProvider = null;
+ mHandler = new Handler(getLooper(), this);
}
- return isSuccessful;
+ return mInitialized;
+ }
+
+ public boolean isProviderEnabled() {
+ return mLookupProvider.isEnabled();
+ }
+
+ public void tearDown() {
+ if (mInitialized) {
+ quit();
+ mLookupProvider.disable();
+ mInitialized = false;
+ }
}
public boolean fetchInfoForPhoneNumber(LookupRequest lookupRequest) {
@@ -62,10 +78,10 @@ public class LookupHandlerThread extends HandlerThread implements Handler.Callba
LookupRequest lookupRequest = (LookupRequest) msg.obj;
switch (what) {
case MSG_FETCH_INFO :
- if (mLookupProvider != null) {
+ if (mInitialized) {
mLookupProvider.fetchInfo(lookupRequest);
}
}
return true;
}
-} \ No newline at end of file
+}
diff --git a/info_lookup/src/com/cyanogen/lookup/phonenumber/contract/LookupProvider.java b/info_lookup/src/com/cyanogen/lookup/phonenumber/contract/LookupProvider.java
index 1047b9aa..9b52453e 100644
--- a/info_lookup/src/com/cyanogen/lookup/phonenumber/contract/LookupProvider.java
+++ b/info_lookup/src/com/cyanogen/lookup/phonenumber/contract/LookupProvider.java
@@ -14,6 +14,11 @@ public interface LookupProvider {
boolean initialize();
/**
+ * Returns true if the provider is installed and enabled
+ */
+ boolean isEnabled();
+
+ /**
* Request to lookup contact info asynchronously. The callback is embedded
* within {@link LookupRequest}
*/
diff --git a/info_lookup/src/com/cyanogen/lookup/phonenumber/provider/LookupProviderImpl.java b/info_lookup/src/com/cyanogen/lookup/phonenumber/provider/LookupProviderImpl.java
index b35d8e86..37b56017 100644
--- a/info_lookup/src/com/cyanogen/lookup/phonenumber/provider/LookupProviderImpl.java
+++ b/info_lookup/src/com/cyanogen/lookup/phonenumber/provider/LookupProviderImpl.java
@@ -29,4 +29,10 @@ public class LookupProviderImpl implements LookupProvider {
public void disable() {
/* NOT IMPLEMENTED */
}
+
+ @Override
+ public boolean isEnabled() {
+ /* NOT a valid implementation */
+ return false;
+ }
}