summaryrefslogtreecommitdiffstats
path: root/info_lookup
diff options
context:
space:
mode:
authorRohit Yengisetty <rohit@cyngn.com>2016-01-06 21:58:38 -0800
committerRohit Yengisetty <rohit@cyngn.com>2016-01-08 15:46:46 -0800
commit51aabe650a5f3530e29c66cbf1ac287d1f7f00a9 (patch)
tree9aaec5a23e5f3165e5d0c802dae51a87f79065d1 /info_lookup
parentd3de2ebe62506129d9a09ec8cbdf495b0e37e8f4 (diff)
downloadandroid_packages_apps_ContactsCommon-51aabe650a5f3530e29c66cbf1ac287d1f7f00a9.tar.gz
android_packages_apps_ContactsCommon-51aabe650a5f3530e29c66cbf1ac287d1f7f00a9.tar.bz2
android_packages_apps_ContactsCommon-51aabe650a5f3530e29c66cbf1ac287d1f7f00a9.zip
Refactor contact info lookup
Change-Id: I17c33ddb046437dde3348d7359dcb422f118a478
Diffstat (limited to 'info_lookup')
-rw-r--r--info_lookup/src/com/cyanogen/lookup/phonenumber/LookupHandlerThread.java135
-rw-r--r--info_lookup/src/com/cyanogen/lookup/phonenumber/contract/LookupProvider.java54
-rw-r--r--info_lookup/src/com/cyanogen/lookup/phonenumber/provider/LookupProviderImpl.java7
-rw-r--r--info_lookup/src/com/cyanogen/lookup/phonenumber/request/LookupRequest.java25
-rw-r--r--info_lookup/src/com/cyanogen/lookup/phonenumber/response/LookupResponse.java32
5 files changed, 6 insertions, 247 deletions
diff --git a/info_lookup/src/com/cyanogen/lookup/phonenumber/LookupHandlerThread.java b/info_lookup/src/com/cyanogen/lookup/phonenumber/LookupHandlerThread.java
deleted file mode 100644
index fed2126a..00000000
--- a/info_lookup/src/com/cyanogen/lookup/phonenumber/LookupHandlerThread.java
+++ /dev/null
@@ -1,135 +0,0 @@
-package com.cyanogen.lookup.phonenumber;
-
-import android.content.Context;
-import android.os.Handler;
-import android.os.HandlerThread;
-import android.os.Message;
-import android.text.TextUtils;
-import android.util.Log;
-import com.cyanogen.lookup.phonenumber.provider.LookupProviderImpl;
-import com.cyanogen.lookup.phonenumber.request.LookupRequest;
-
-import java.util.HashSet;
-
-public class LookupHandlerThread extends HandlerThread implements Handler.Callback {
-
- private static final int MSG_FETCH_INFO = 0;
- private static final int MSG_MARK_AS_SPAM = 1;
- private static final String TAG = LookupHandlerThread.class.getSimpleName();
-
- private Context mContext;
- 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() {
- if (mInitialized) {
- return true;
- }
-
- mInitialized = mLookupProvider.initialize();
- if (mInitialized) {
- mSubmittedRequests = new HashSet<>();
- start();
- mHandler = new Handler(getLooper(), this);
- } else {
- Log.w(TAG, "Failed to initialize!");
- }
-
- return mInitialized;
- }
-
- public boolean isProviderEnabled() {
- return mLookupProvider.isEnabled();
- }
-
- public void tearDown() {
- if (mInitialized) {
- quit();
- mLookupProvider.disable();
- mInitialized = false;
- }
- }
-
- public boolean fetchInfoForPhoneNumber(LookupRequest lookupRequest) {
- if (!mSubmittedRequests.contains(lookupRequest)) {
- Message msg = mHandler.obtainMessage(MSG_FETCH_INFO);
- msg.obj = lookupRequest;
- boolean requested = mHandler.sendMessage(msg);
- if (requested) {
- mSubmittedRequests.add(lookupRequest);
- }
- return requested;
- }
-
- return false;
- }
-
- /**
- * Posts a message to {@link #mHandler} which later dispatches a request to the provider
- * implementation that knows how to mark a phone number as spam
- *
- * @param phoneNumber {@link String}
- */
- public void markAsSpam(String phoneNumber) {
- if (TextUtils.isEmpty(phoneNumber)) {
- return;
- }
- if (mHandler != null) {
- Message msg = mHandler.obtainMessage(MSG_MARK_AS_SPAM);
- msg.obj = phoneNumber;
- mHandler.sendMessage(msg);
- } else {
- Log.w(TAG, "No handler!");
- }
- }
-
- /**
- * Check if the provider supports spam reporting
- *
- * @return {@link Boolean}
- */
- public boolean hasSpamReporting() {
- return mLookupProvider.hasSpamReporting();
- }
-
- /**
- * Get the display name of the provider
- *
- * @return {@link String}
- */
- public String getProviderName() {
- return mLookupProvider.getDisplayName();
- }
-
- @Override
- public boolean handleMessage(Message msg) {
- int what = msg.what;
- switch (what) {
- case MSG_FETCH_INFO :
- if (mInitialized) {
- mLookupProvider.fetchInfo((LookupRequest) msg.obj);
- }
- break;
- case MSG_MARK_AS_SPAM :
- if (mInitialized) {
- mLookupProvider.markAsSpam((String) msg.obj);
- }
- break;
- }
- return true;
- }
-}
diff --git a/info_lookup/src/com/cyanogen/lookup/phonenumber/contract/LookupProvider.java b/info_lookup/src/com/cyanogen/lookup/phonenumber/contract/LookupProvider.java
deleted file mode 100644
index 343ff69f..00000000
--- a/info_lookup/src/com/cyanogen/lookup/phonenumber/contract/LookupProvider.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package com.cyanogen.lookup.phonenumber.contract;
-
-import com.cyanogen.lookup.phonenumber.request.LookupRequest;
-
-/**
- * Notion of a phone number lookup provider
- */
-public interface LookupProvider {
-
- /**
- * Explicit call to the provider to initialize itself. Decoupling it from provider construction
- * to enable explicit setup and tear down based on resource constraints.
- */
- 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}
- */
- void fetchInfo(LookupRequest request);
-
- /**
- * Explicit call to disable provider and free resources
- */
- void disable();
-
- /**
- * Interface to provide ability to flag a phone number as spam
- *
- * @param phoneNumber {@link String}
- */
- void markAsSpam(String phoneNumber);
-
- /**
- * Check if the current provider supports spam reporting
- *
- * @return {@link Boolean} <code>true</code> if available, <code>false</code> if not
- */
- boolean hasSpamReporting();
-
- /**
- * Returns the name of the current provider
- *
- * @return {@link String}
- */
- String getDisplayName();
-
-}
-
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 40d86a62..27bbdc4a 100644
--- a/info_lookup/src/com/cyanogen/lookup/phonenumber/provider/LookupProviderImpl.java
+++ b/info_lookup/src/com/cyanogen/lookup/phonenumber/provider/LookupProviderImpl.java
@@ -42,7 +42,12 @@ public class LookupProviderImpl implements LookupProvider {
}
@Override
- public boolean hasSpamReporting() {
+ public void unmarkAsSpam(String phoneNumber) {
+ /* NOT IMPLEMENTED */
+ }
+
+ @Override
+ public boolean supportsSpamReporting() {
/* NOT a valid implementation */
return false;
}
diff --git a/info_lookup/src/com/cyanogen/lookup/phonenumber/request/LookupRequest.java b/info_lookup/src/com/cyanogen/lookup/phonenumber/request/LookupRequest.java
deleted file mode 100644
index e160bbb6..00000000
--- a/info_lookup/src/com/cyanogen/lookup/phonenumber/request/LookupRequest.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.cyanogen.lookup.phonenumber.request;
-
-import com.cyanogen.lookup.phonenumber.response.LookupResponse;
-
-/**
- * Encapsulates the notion of a phone number lookup request
- */
-public class LookupRequest {
- public String mPhoneNumber;
- public Callback mCallback;
-
- public LookupRequest(String phoneNumber, Callback callback) {
- mPhoneNumber = phoneNumber;
- mCallback = callback;
- }
-
- @Override
- public int hashCode() {
- return mPhoneNumber.hashCode();
- }
-
- public interface Callback {
- void onNewInfo(LookupRequest lookupRequest, LookupResponse response);
- }
-}
diff --git a/info_lookup/src/com/cyanogen/lookup/phonenumber/response/LookupResponse.java b/info_lookup/src/com/cyanogen/lookup/phonenumber/response/LookupResponse.java
deleted file mode 100644
index 1cb51c2b..00000000
--- a/info_lookup/src/com/cyanogen/lookup/phonenumber/response/LookupResponse.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.cyanogen.lookup.phonenumber.response;
-
-import android.graphics.drawable.Drawable;
-
-/**
- * ADT to store the result of a phone number lookup
- */
-public class LookupResponse {
- public String mProviderName;
- public String mName;
- public String mNumber;
- public String mCity;
- public String mCountry;
- public String mAddress;
- public String mPhotoUrl;
- public int mSpamCount;
-
- public Drawable mAttributionLogo;
-
- @Override
- public String toString() {
- return String.format("{ providerName = %s, name = %s, number = %s, city = %s, country = %s, address = %s, photo-url : %s, spam-count = %d}",
- mProviderName != null ? mProviderName : "null" ,
- mName != null ? mName : "null" ,
- mNumber != null ? mNumber : "null" ,
- mCity != null ? mCity : "null" ,
- mCountry != null ? mCountry : "null" ,
- mAddress != null ? mAddress : "null" ,
- mPhotoUrl != null ? mPhotoUrl : "null" ,
- mSpamCount );
- }
-} \ No newline at end of file