diff options
author | Rohit Yengisetty <rohit@cyngn.com> | 2016-01-06 21:58:38 -0800 |
---|---|---|
committer | Rohit Yengisetty <rohit@cyngn.com> | 2016-01-08 15:46:46 -0800 |
commit | 51aabe650a5f3530e29c66cbf1ac287d1f7f00a9 (patch) | |
tree | 9aaec5a23e5f3165e5d0c802dae51a87f79065d1 /info_lookup | |
parent | d3de2ebe62506129d9a09ec8cbdf495b0e37e8f4 (diff) | |
download | android_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')
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 |