diff --git a/src/com/android/dialer/CallDetailActivity.java b/src/com/android/dialer/CallDetailActivity.java
index 2121e98..773938c 100644
--- a/src/com/android/dialer/CallDetailActivity.java
+++ b/src/com/android/dialer/CallDetailActivity.java
@@ -55,7 +55,7 @@
 import com.android.dialer.calllog.PhoneAccountUtils;
 import com.android.dialer.database.FilteredNumberAsyncQueryHandler.OnCheckBlockedListener;
 import com.android.dialer.database.FilteredNumberAsyncQueryHandler;
-import com.android.dialer.filterednumber.FilterNumberDialogFragment;
+import com.android.dialer.filterednumber.BlockNumberDialogFragment;
 import com.android.dialer.filterednumber.FilteredNumbersUtil;
 import com.android.dialer.util.DialerUtils;
 import com.android.dialer.util.IntentUtil.CallIntentBuilder;
@@ -71,7 +71,7 @@
  */
 public class CallDetailActivity extends AppCompatActivity
         implements MenuItem.OnMenuItemClickListener, View.OnClickListener,
-                FilterNumberDialogFragment.Callback {
+                BlockNumberDialogFragment.Callback {
     private static final String TAG = CallDetailActivity.class.getSimpleName();
 
      /** A long array extra containing ids of call log entries to display. */
@@ -358,7 +358,7 @@
     public void onClick(View view) {
         switch(view.getId()) {
             case R.id.call_detail_action_block:
-                FilterNumberDialogFragment.show(
+                BlockNumberDialogFragment.show(
                         mBlockedNumberId,
                         null /* normalizedNumber */,
                         mNumber,
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java
index 01af982..d846c65 100644
--- a/src/com/android/dialer/calllog/CallLogAdapter.java
+++ b/src/com/android/dialer/calllog/CallLogAdapter.java
@@ -50,7 +50,7 @@
 import com.android.dialer.contactinfo.NumberWithCountryIso;
 import com.android.dialer.database.FilteredNumberAsyncQueryHandler;
 import com.android.dialer.database.FilteredNumberAsyncQueryHandler.OnCheckBlockedListener;
-import com.android.dialer.filterednumber.FilterNumberDialogFragment;
+import com.android.dialer.filterednumber.BlockNumberDialogFragment;
 import com.android.dialer.util.PhoneNumberUtil;
 import com.android.dialer.voicemail.VoicemailPlaybackPresenter;
 
@@ -63,7 +63,7 @@
 public class CallLogAdapter extends GroupingListAdapter
         implements CallLogGroupBuilder.GroupCreator,
                 VoicemailPlaybackPresenter.OnVoicemailDeletedListener,
-                FilterNumberDialogFragment.Callback {
+                BlockNumberDialogFragment.Callback {
 
     /** Interface used to initiate a refresh of the content. */
     public interface CallFetcher {
diff --git a/src/com/android/dialer/calllog/CallLogListItemViewHolder.java b/src/com/android/dialer/calllog/CallLogListItemViewHolder.java
index 1bc4410..d07f05a 100644
--- a/src/com/android/dialer/calllog/CallLogListItemViewHolder.java
+++ b/src/com/android/dialer/calllog/CallLogListItemViewHolder.java
@@ -48,7 +48,7 @@
 import com.android.dialer.DialtactsActivity;
 import com.android.dialer.R;
 import com.android.dialer.database.FilteredNumberAsyncQueryHandler;
-import com.android.dialer.filterednumber.FilterNumberDialogFragment;
+import com.android.dialer.filterednumber.BlockNumberDialogFragment;
 import com.android.dialer.filterednumber.FilteredNumbersUtil;
 import com.android.dialer.util.DialerUtils;
 import com.android.dialer.util.PhoneNumberUtil;
@@ -184,7 +184,7 @@
     private final CallLogListItemHelper mCallLogListItemHelper;
     private final VoicemailPlaybackPresenter mVoicemailPlaybackPresenter;
     private final FilteredNumberAsyncQueryHandler mFilteredNumberAsyncQueryHandler;
-    private final FilterNumberDialogFragment.Callback mFilteredNumberDialogCallback;
+    private final BlockNumberDialogFragment.Callback mFilteredNumberDialogCallback;
 
     private final int mPhotoSize;
 
@@ -198,7 +198,7 @@
             CallLogListItemHelper callLogListItemHelper,
             VoicemailPlaybackPresenter voicemailPlaybackPresenter,
             FilteredNumberAsyncQueryHandler filteredNumberAsyncQueryHandler,
-            FilterNumberDialogFragment.Callback filteredNumberDialogCallback,
+            BlockNumberDialogFragment.Callback filteredNumberDialogCallback,
             View rootView,
             QuickContactBadge quickContactView,
             View primaryActionView,
@@ -247,7 +247,7 @@
             CallLogListItemHelper callLogListItemHelper,
             VoicemailPlaybackPresenter voicemailPlaybackPresenter,
             FilteredNumberAsyncQueryHandler filteredNumberAsyncQueryHandler,
-            FilterNumberDialogFragment.Callback filteredNumberDialogCallback) {
+            BlockNumberDialogFragment.Callback filteredNumberDialogCallback) {
 
         return new CallLogListItemViewHolder(
                 context,
@@ -327,7 +327,7 @@
     public boolean onMenuItemClick(MenuItem item) {
         switch (item.getItemId()) {
             case R.id.context_menu_block_number:
-                FilterNumberDialogFragment.show(
+                BlockNumberDialogFragment.show(
                         blockId,
                         info.normalizedNumber,
                         number,
diff --git a/src/com/android/dialer/filterednumber/FilterNumberDialogFragment.java b/src/com/android/dialer/filterednumber/BlockNumberDialogFragment.java
similarity index 94%
rename from src/com/android/dialer/filterednumber/FilterNumberDialogFragment.java
rename to src/com/android/dialer/filterednumber/BlockNumberDialogFragment.java
index d7608d8..fcd74f3 100644
--- a/src/com/android/dialer/filterednumber/FilterNumberDialogFragment.java
+++ b/src/com/android/dialer/filterednumber/BlockNumberDialogFragment.java
@@ -37,7 +37,11 @@
 import com.android.dialer.database.FilteredNumberAsyncQueryHandler.OnBlockNumberListener;
 import com.android.dialer.database.FilteredNumberAsyncQueryHandler.OnUnblockNumberListener;
 
-public class FilterNumberDialogFragment extends DialogFragment {
+/**
+ * Fragment for confirming and enacting blocking/unblocking a number. Also invokes snackbar
+ * providing undo functionality.
+ */
+public class BlockNumberDialogFragment extends DialogFragment {
 
     /**
      * Use a callback interface to update UI after success/undo. Favor this approach over other
@@ -51,7 +55,7 @@
         public void onChangeFilteredNumberUndo();
     }
 
-    private static final String BLOCK_DIALOG_FRAGMENT = "blockUnblockNumberDialog";
+    private static final String BLOCK_DIALOG_FRAGMENT = "BlockNumberDialog";
 
     private static final String ARG_BLOCK_ID = "argBlockId";
     private static final String ARG_NORMALIZED_NUMBER = "argNormalizedNumber";
@@ -78,21 +82,21 @@
             Integer parentViewId,
             FragmentManager fragmentManager,
             Callback callback) {
-        final FilterNumberDialogFragment newFragment = FilterNumberDialogFragment.newInstance(
+        final BlockNumberDialogFragment newFragment = BlockNumberDialogFragment.newInstance(
                 blockId, normalizedNumber, number, countryIso, displayNumber, parentViewId);
 
         newFragment.setCallback(callback);
-        newFragment.show(fragmentManager, FilterNumberDialogFragment.BLOCK_DIALOG_FRAGMENT);
+        newFragment.show(fragmentManager, BlockNumberDialogFragment.BLOCK_DIALOG_FRAGMENT);
     }
 
-    private static FilterNumberDialogFragment newInstance(
+    private static BlockNumberDialogFragment newInstance(
             Integer blockId,
             String normalizedNumber,
             String number,
             String countryIso,
             String displayNumber,
             Integer parentViewId) {
-        final FilterNumberDialogFragment fragment = new FilterNumberDialogFragment();
+        final BlockNumberDialogFragment fragment = new BlockNumberDialogFragment();
         final Bundle args = new Bundle();
         if (blockId != null) {
             args.putInt(ARG_BLOCK_ID, blockId.intValue());
diff --git a/src/com/android/dialer/filterednumber/BlockedNumberAdapter.java b/src/com/android/dialer/filterednumber/BlockedNumberAdapter.java
index 7777aeb..76fc743 100644
--- a/src/com/android/dialer/filterednumber/BlockedNumberAdapter.java
+++ b/src/com/android/dialer/filterednumber/BlockedNumberAdapter.java
@@ -59,7 +59,7 @@
         deleteButton.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                FilterNumberDialogFragment.show(
+                BlockNumberDialogFragment.show(
                         id,
                         normalizedNumber,
                         number,
diff --git a/src/com/android/dialer/list/BlockedListSearchFragment.java b/src/com/android/dialer/list/BlockedListSearchFragment.java
index 852e7c9..805d969 100644
--- a/src/com/android/dialer/list/BlockedListSearchFragment.java
+++ b/src/com/android/dialer/list/BlockedListSearchFragment.java
@@ -34,12 +34,12 @@
 import com.android.dialer.R;
 import com.android.dialer.database.FilteredNumberAsyncQueryHandler;
 import com.android.dialer.database.FilteredNumberAsyncQueryHandler.OnCheckBlockedListener;
-import com.android.dialer.filterednumber.FilterNumberDialogFragment;
+import com.android.dialer.filterednumber.BlockNumberDialogFragment;
 import com.android.dialer.filterednumber.ManageBlockedNumbersActivity;
 import com.android.dialer.widget.SearchEditTextLayout;
 
 public class BlockedListSearchFragment extends RegularSearchFragment
-        implements FilterNumberDialogFragment.Callback {
+        implements BlockNumberDialogFragment.Callback {
     private static final String TAG = BlockedListSearchFragment.class.getSimpleName();
 
     private static final String KEY_SEARCH_QUERY = "search_query";
@@ -175,7 +175,7 @@
             @Override
             public void onCheckComplete(Integer id) {
                 if (id == null) {
-                    FilterNumberDialogFragment.show(
+                    BlockNumberDialogFragment.show(
                             id,
                             null,
                             number,
@@ -224,7 +224,7 @@
             return;
         }
 
-        FilterNumberDialogFragment.show(
+        BlockNumberDialogFragment.show(
                 blockId,
                 null,
                 number,
