summaryrefslogtreecommitdiffstats
path: root/info_lookup/src
diff options
context:
space:
mode:
Diffstat (limited to 'info_lookup/src')
-rw-r--r--info_lookup/src/com/cyanogen/lookup/phonenumber/LookupHandlerThread.java34
-rw-r--r--info_lookup/src/com/cyanogen/lookup/phonenumber/contract/LookupProvider.java7
-rw-r--r--info_lookup/src/com/cyanogen/lookup/phonenumber/provider/LookupProviderImpl.java6
3 files changed, 44 insertions, 3 deletions
diff --git a/info_lookup/src/com/cyanogen/lookup/phonenumber/LookupHandlerThread.java b/info_lookup/src/com/cyanogen/lookup/phonenumber/LookupHandlerThread.java
index 4a594f3a..01b479ea 100644
--- a/info_lookup/src/com/cyanogen/lookup/phonenumber/LookupHandlerThread.java
+++ b/info_lookup/src/com/cyanogen/lookup/phonenumber/LookupHandlerThread.java
@@ -4,6 +4,8 @@ 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;
@@ -12,6 +14,8 @@ 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;
@@ -41,6 +45,8 @@ public class LookupHandlerThread extends HandlerThread implements Handler.Callba
mSubmittedRequests = new HashSet<>();
start();
mHandler = new Handler(getLooper(), this);
+ } else {
+ Log.w(TAG, "Failed to initialize!");
}
return mInitialized;
@@ -72,15 +78,39 @@ public class LookupHandlerThread extends HandlerThread implements Handler.Callba
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!");
+ }
+ }
+
@Override
public boolean handleMessage(Message msg) {
int what = msg.what;
- LookupRequest lookupRequest = (LookupRequest) msg.obj;
switch (what) {
case MSG_FETCH_INFO :
if (mInitialized) {
- mLookupProvider.fetchInfo(lookupRequest);
+ 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
index 9b52453e..524e4cb2 100644
--- a/info_lookup/src/com/cyanogen/lookup/phonenumber/contract/LookupProvider.java
+++ b/info_lookup/src/com/cyanogen/lookup/phonenumber/contract/LookupProvider.java
@@ -28,6 +28,11 @@ public interface LookupProvider {
* Explicit call to disable provider and free resources
*/
void disable();
-
+
+ /**
+ * Interface to provide ability to flag a phone number as spam
+ */
+ void markAsSpam(String phoneNumber);
+
}
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 37b56017..5056673c 100644
--- a/info_lookup/src/com/cyanogen/lookup/phonenumber/provider/LookupProviderImpl.java
+++ b/info_lookup/src/com/cyanogen/lookup/phonenumber/provider/LookupProviderImpl.java
@@ -35,4 +35,10 @@ public class LookupProviderImpl implements LookupProvider {
/* NOT a valid implementation */
return false;
}
+
+ @Override
+ public void markAsSpam(String phoneNumber) {
+ /* NOT IMPLEMENTED */
+ }
+
}