Merge "Hiding add number button in Blocked Management UI" into nyc-dev
diff --git a/src/com/android/dialer/compat/FilteredNumberCompat.java b/src/com/android/dialer/compat/FilteredNumberCompat.java
index c70df71..63a2a32 100644
--- a/src/com/android/dialer/compat/FilteredNumberCompat.java
+++ b/src/com/android/dialer/compat/FilteredNumberCompat.java
@@ -99,15 +99,25 @@
     }
 
     /**
-     * @return {@code true} if the new filtering is enabled, {@code false} otherwise.
+     * @return {@code true} if the current SDK version supports using new filtering, {@code false}
+     * otherwise.
      */
-    public static boolean useNewFiltering() {
+    public static boolean canUseNewFiltering() {
         if (isEnabledForTest != null) {
             return CompatUtils.isNCompatible() && isEnabledForTest;
         }
         return CompatUtils.isNCompatible() && isNewFilteringEnabled;
     }
 
+    /**
+     * @return {@code true} if the new filtering should be used, i.e. it's enabled and any necessary
+     * migration has been performed, {@code false} otherwise.
+     */
+    public static boolean useNewFiltering() {
+        // TODO(maxwelb): Add shared preference for when the Dialer blocked list has been migrated
+        return canUseNewFiltering();
+    }
+
     @NeededForTesting
     public static void setIsEnabledForTest(Boolean isEnabled) {
         isEnabledForTest = isEnabled;
diff --git a/src/com/android/dialer/filterednumber/BlockedNumbersFragment.java b/src/com/android/dialer/filterednumber/BlockedNumbersFragment.java
index a878660..38615cc 100644
--- a/src/com/android/dialer/filterednumber/BlockedNumbersFragment.java
+++ b/src/com/android/dialer/filterednumber/BlockedNumbersFragment.java
@@ -32,8 +32,10 @@
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import com.android.contacts.common.compat.CompatUtils;
 import com.android.contacts.common.lettertiles.LetterTileDrawable;
 import com.android.dialer.R;
+import com.android.dialer.compat.FilteredNumberCompat;
 import com.android.dialer.database.FilteredNumberContract;
 import com.android.dialer.filterednumber.FilteredNumbersUtil.CheckForSendToVoicemailContactListener;
 import com.android.dialer.filterednumber.FilteredNumbersUtil.ImportSendToVoicemailContactsListener;
@@ -83,7 +85,7 @@
         mBlockedNumbersDisabledForEmergency =
                 getListView().findViewById(R.id.blocked_numbers_disabled_for_emergency);
         mBlockedNumberListDivider = getActivity().findViewById(R.id.blocked_number_list_divider);
-        getListView().findViewById(R.id.import_button).setOnClickListener(this);;
+        getListView().findViewById(R.id.import_button).setOnClickListener(this);
         getListView().findViewById(R.id.view_numbers_button).setOnClickListener(this);
         getListView().findViewById(R.id.add_number_linear_layout).setOnClickListener(this);
 
@@ -118,6 +120,15 @@
         actionBar.setDisplayShowTitleEnabled(true);
         actionBar.setTitle(R.string.manage_blocked_numbers_label);
 
+        // If the device can use the framework blocking solution, users should not be able to add
+        // new blocked numbers from the Blocked Management UI. They will be shown a promo card
+        // asking them to migrate to new blocking instead.
+        if (FilteredNumberCompat.canUseNewFiltering()) {
+            getListView().findViewById(R.id.add_number_linear_layout).setVisibility(View.GONE);
+            getListView().findViewById(R.id.add_number_linear_layout).setOnClickListener(null);
+            mBlockedNumberListDivider.setVisibility(View.INVISIBLE);
+        }
+
         FilteredNumbersUtil.checkForSendToVoicemailContact(
             getActivity(), new CheckForSendToVoicemailContactListener() {
                 @Override
@@ -152,16 +163,15 @@
         };
         final String selection = FilteredNumberContract.FilteredNumberColumns.TYPE
                 + "=" + FilteredNumberContract.FilteredNumberTypes.BLOCKED_NUMBER;
-        final CursorLoader cursorLoader = new CursorLoader(
+        return new CursorLoader(
                 getContext(), FilteredNumberContract.FilteredNumber.CONTENT_URI, projection,
                 selection, null, null);
-        return cursorLoader;
     }
 
     @Override
     public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
         mAdapter.swapCursor(data);
-        if (data.getCount() == 0) {
+        if (FilteredNumberCompat.canUseNewFiltering() || data.getCount() == 0) {
             mBlockedNumberListDivider.setVisibility(View.INVISIBLE);
         } else {
             mBlockedNumberListDivider.setVisibility(View.VISIBLE);