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.
