Add setting for hiding blocked calls.

+ Add settings switch to blocked number settings.
+ Add utility for checking/setting whether calls should be blocked.
+ Filter out blocked calls in call log query, if appropriate.
+ Refresh call log fragment after a change in setting.

Followup work: delete voicemails for calls by blocked numbers after
the time when the user blocked them.

Bug: 24134270
Change-Id: I85088697559ef6fb446b82617f14f1c6fa893df1
diff --git a/res/layout/blocked_number_fragment.xml b/res/layout/blocked_number_fragment.xml
index bb4b7f2..906e8a1 100644
--- a/res/layout/blocked_number_fragment.xml
+++ b/res/layout/blocked_number_fragment.xml
@@ -25,6 +25,36 @@
     <android.support.v7.widget.CardView
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:layout_marginBottom="8dp"
+        card_view:cardCornerRadius="0dp">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:gravity="center_vertical"
+            android:padding="16dp"
+            android:paddingEnd="8dp">
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:text="@string/blocked_call_settings_hide_setting"
+                style="@style/BlockedNumbersDescriptionTextStyle" />
+
+            <Switch android:id="@+id/hide_blocked_calls_switch"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="40dp" />
+
+        </LinearLayout>
+
+    </android.support.v7.widget.CardView>
+
+    <android.support.v7.widget.CardView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
         card_view:cardCornerRadius="0dp">
 
         <LinearLayout
diff --git a/res/layout/blocked_number_header.xml b/res/layout/blocked_number_header.xml
index 39f5322..e16efbc 100644
--- a/res/layout/blocked_number_header.xml
+++ b/res/layout/blocked_number_header.xml
@@ -33,11 +33,9 @@
             android:layout_height="wrap_content"
             android:text="@string/blocked_call_settings_import_description"
             android:textSize="@dimen/blocked_number_settings_description_text_size"
-            android:lineSpacingMultiplier="1.2"
-            android:paddingTop="8dp"
-            android:paddingBottom="8dp"
             android:paddingStart="@dimen/blocked_number_container_padding"
-            android:paddingEnd="@dimen/blocked_number_container_padding" />
+            android:paddingEnd="@dimen/blocked_number_container_padding"
+            style="@style/BlockedNumbersDescriptionTextStyle" />
 
         <Button android:id="@+id/import_button"
             android:layout_width="wrap_content"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 0b7d82c..333a99b 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -833,6 +833,12 @@
         You previously marked some callers to be automatically sent to voicemail via other apps.
     </string>
 
+    <!-- Text for a setting to hide blocked calls and automatically delete voicemail from block
+         numbers. [CHAR LIMIT=NONE] -->
+    <string name="blocked_call_settings_hide_setting">
+        Hide calls and delete voicemails from blocked numbers.
+    </string>
+
     <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
          [CHAR_LIMIT=20] -->
     <string name="blocked_call_settings_view_numbers_button">View Numbers</string>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 7828a20..533b88e 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -324,4 +324,11 @@
         <item name="android:paddingStart">@dimen/button_horizontal_padding</item>
         <item name="android:textColor">@color/dialer_flat_button_text_color</item>
     </style>
+
+    <style name="BlockedNumbersDescriptionTextStyle">
+        <item name="android:lineSpacingMultiplier">1.2</item>
+        <item name="android:paddingTop">8dp</item>
+        <item name="android:paddingBottom">8dp</item>
+        <item name="android:textSize">@dimen/blocked_number_settings_description_text_size</item>
+    </style>
 </resources>