Spam Manager framework for event handling.

This manager will be in charge of events related to
the spam feature actions (blocking, unblocking, enlisting
and removing from spam list). Implementation in ag/858553

Change-Id: Ica268e1305ccc1ccbb9a5a0e27eb6a2eb1f71849
diff --git a/src/com/android/dialer/service/ExtendedBlockingManager.java b/src/com/android/dialer/service/ExtendedBlockingManager.java
new file mode 100644
index 0000000..3257a72
--- /dev/null
+++ b/src/com/android/dialer/service/ExtendedBlockingManager.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.service;
+
+import android.support.annotation.Nullable;
+
+/**
+ * Manager of extended blocking events. It notifies all listeners of all blocking-related events.
+ */
+public interface ExtendedBlockingManager {
+
+    interface ButtonRendererListener {
+        void onBlockedNumber(String number, @Nullable String countryIso);
+        void onUnblockedNumber(String number, @Nullable String countryIso);
+    }
+
+    void addButtonRendererListener(@Nullable ButtonRendererListener listener);
+
+    void removeButtonRendererListener(@Nullable ButtonRendererListener listener);
+
+    void notifyOnBlockedNumber(String number, @Nullable String countryIso);
+
+    void notifyOnUnblockedNumber(String number, @Nullable String countryIso);
+}
diff --git a/src/com/android/dialerbind/ObjectFactory.java b/src/com/android/dialerbind/ObjectFactory.java
index d06d55e..299d736 100644
--- a/src/com/android/dialerbind/ObjectFactory.java
+++ b/src/com/android/dialerbind/ObjectFactory.java
@@ -19,8 +19,7 @@
 import static com.android.dialer.calllog.CallLogAdapter.CallFetcher;
 
 import android.content.Context;
-import android.view.View;
-import android.view.ViewGroup;
+import android.support.annotation.Nullable;
 import android.view.ViewStub;
 
 import com.android.dialer.calllog.CallLogAdapter;
@@ -28,6 +27,7 @@
 import com.android.dialer.list.RegularSearchFragment;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.service.CachedNumberLookupService;
+import com.android.dialer.service.ExtendedBlockingManager;
 import com.android.dialer.service.SpamButtonRenderer;
 import com.android.dialer.voicemail.VoicemailPlaybackPresenter;
 
@@ -45,12 +45,18 @@
         return "com.android.dialer.database.filterednumberprovider";
     }
 
+    @Nullable
     public static SpamButtonRenderer newSpamButtonRenderer(
             Context context,
             ViewStub stub) {
         return null;
     }
 
+    @Nullable
+    public static ExtendedBlockingManager getExtendedBlockingManager() {
+        return null;
+    }
+
     /**
      * Create a new instance of the call log adapter.
      * @param context The context to use.