Merge "Add setting for hiding blocked calls." into ub-contactsdialer-a-dev
diff --git a/res/drawable-hdpi/ic_unblock.png b/res/drawable-hdpi/ic_unblock.png
new file mode 100644
index 0000000..03643b2
--- /dev/null
+++ b/res/drawable-hdpi/ic_unblock.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_unblock.png b/res/drawable-mdpi/ic_unblock.png
new file mode 100644
index 0000000..d80fb2f
--- /dev/null
+++ b/res/drawable-mdpi/ic_unblock.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_unblock.png b/res/drawable-xhdpi/ic_unblock.png
new file mode 100644
index 0000000..f7dfa21
--- /dev/null
+++ b/res/drawable-xhdpi/ic_unblock.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_unblock.png b/res/drawable-xxhdpi/ic_unblock.png
new file mode 100644
index 0000000..828a487
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_unblock.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_unblock.png b/res/drawable-xxxhdpi/ic_unblock.png
new file mode 100644
index 0000000..99a1842
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_unblock.png
Binary files differ
diff --git a/res/drawable/ic_call_detail_unblock.xml b/res/drawable/ic_call_detail_unblock.xml
new file mode 100644
index 0000000..ba5378b
--- /dev/null
+++ b/res/drawable/ic_call_detail_unblock.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2015 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.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/ic_unblock"
+    android:tint="@color/call_detail_footer_icon_tint" />
diff --git a/res/layout/call_detail_footer.xml b/res/layout/call_detail_footer.xml
index 048f803..6ee76e6 100644
--- a/res/layout/call_detail_footer.xml
+++ b/res/layout/call_detail_footer.xml
@@ -27,21 +27,21 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:text="@string/action_block_number"
-        android:drawableLeft="@drawable/ic_call_detail_block"
+        android:drawableStart="@drawable/ic_call_detail_block"
         style="@style/CallDetailActionItemStyle" />
 
     <TextView android:id="@+id/call_detail_action_copy"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:text="@string/action_copy_number_text"
-        android:drawableLeft="@drawable/ic_call_detail_content_copy"
+        android:drawableStart="@drawable/ic_call_detail_content_copy"
         style="@style/CallDetailActionItemStyle" />
 
     <TextView android:id="@+id/call_detail_action_edit_before_call"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:text="@string/action_edit_number_before_call"
-        android:drawableLeft="@drawable/ic_call_detail_edit"
+        android:drawableStart="@drawable/ic_call_detail_edit"
         android:visibility="gone"
         style="@style/CallDetailActionItemStyle" />
 
@@ -49,7 +49,7 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:text="@string/action_report_number"
-        android:drawableLeft="@drawable/ic_call_detail_report"
+        android:drawableStart="@drawable/ic_call_detail_report"
         android:visibility="gone"
         style="@style/CallDetailActionItemStyle" />
 
diff --git a/src/com/android/dialer/CallDetailActivity.java b/src/com/android/dialer/CallDetailActivity.java
index ef21980..284a578 100644
--- a/src/com/android/dialer/CallDetailActivity.java
+++ b/src/com/android/dialer/CallDetailActivity.java
@@ -455,8 +455,12 @@
     private void updateBlockActionItem() {
         if (mBlockedNumberId == null) {
             mBlockNumberActionItem.setText(R.string.action_block_number);
+            mBlockNumberActionItem.setCompoundDrawablesWithIntrinsicBounds(
+                    R.drawable.ic_call_detail_block, 0, 0, 0);
         } else {
             mBlockNumberActionItem.setText(R.string.action_unblock_number);
+            mBlockNumberActionItem.setCompoundDrawablesWithIntrinsicBounds(
+                    R.drawable.ic_call_detail_unblock, 0, 0, 0);
         }
 
         mBlockNumberActionItem.setVisibility(View.VISIBLE);
diff --git a/src/com/android/dialer/database/FilteredNumberProvider.java b/src/com/android/dialer/database/FilteredNumberProvider.java
index acb5e7f..3b63d4b 100644
--- a/src/com/android/dialer/database/FilteredNumberProvider.java
+++ b/src/com/android/dialer/database/FilteredNumberProvider.java
@@ -80,10 +80,6 @@
     @Override
     public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
                         String sortOrder) {
-        Log.d(TAG, "query: uri=" + uri + "  projection=" + Arrays.toString(projection) +
-                "  selection=[" + selection + "]  args=" + Arrays.toString(selectionArgs) +
-                "  order=[" + sortOrder + "] CPID=" + Binder.getCallingPid());
-
         final SQLiteDatabase db = mDialerDatabaseHelper.getReadableDatabase();
         SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
         qb.setTables(DialerDatabaseHelper.Tables.FILTERED_NUMBER_TABLE);
diff --git a/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java b/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java
index 3a79695..bdd5dc5 100644
--- a/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java
+++ b/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java
@@ -134,6 +134,9 @@
 
         assertEquals(Calls.PRESENTATION_RESTRICTED, mViewHolder.numberPresentation);
         assertNull(mViewHolder.primaryActionButtonView.getTag());
+        // QC should be disabled since there are no actions to be performed on this
+        // call.
+        assertFalse(mViewHolder.quickContactView.isEnabled());
     }
 
     @MediumTest
@@ -145,6 +148,9 @@
 
         assertEquals(Calls.PRESENTATION_UNKNOWN, mViewHolder.numberPresentation);
         assertNull(mViewHolder.primaryActionButtonView.getTag());
+        // QC should be disabled since there are no actions to be performed on this
+        // call.
+        assertFalse(mViewHolder.quickContactView.isEnabled());
     }
 
     @MediumTest
@@ -154,7 +160,7 @@
         mAdapter.changeCursor(mCursor);
         mAdapter.onBindViewHolder(mViewHolder, 0);
 
-        assertFalse(mViewHolder.quickContactView.isEnabled());
+        //assertFalse(mViewHolder.quickContactView.isEnabled());
     }
 
     @MediumTest
diff --git a/tests/src/com/android/dialer/calllog/CallLogListItemHelperTest.java b/tests/src/com/android/dialer/calllog/CallLogListItemHelperTest.java
index d554ad4..12f32ce 100644
--- a/tests/src/com/android/dialer/calllog/CallLogListItemHelperTest.java
+++ b/tests/src/com/android/dialer/calllog/CallLogListItemHelperTest.java
@@ -20,6 +20,7 @@
 import android.content.res.Resources;
 import android.provider.CallLog.Calls;
 import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.MediumTest;
 import android.view.View;
 
 import com.android.contacts.common.CallUtil;
@@ -30,6 +31,7 @@
 /**
  * Unit tests for {@link CallLogListItemHelper}.
  */
+@MediumTest
 public class CallLogListItemHelperTest extends AndroidTestCase {
     /** A test phone number for phone calls. */
     private static final String TEST_NUMBER = "14125555555";
@@ -273,7 +275,7 @@
 
     /** Asserts that the primary action view does not have a call intent. */
     private void assertNoCallIntent() {
-        Object intentProvider = (IntentProvider)mViewHolder.primaryActionView.getTag();
+        Object intentProvider = mViewHolder.primaryActionView.getTag();
         // The intent provider should be null as there is no ability to make a call.
         assertNull(intentProvider);
     }
diff --git a/tests/src/com/android/dialer/calllog/GroupingListAdapterTests.java b/tests/src/com/android/dialer/calllog/GroupingListAdapterTests.java
index 45bc598..4d51f72 100644
--- a/tests/src/com/android/dialer/calllog/GroupingListAdapterTests.java
+++ b/tests/src/com/android/dialer/calllog/GroupingListAdapterTests.java
@@ -21,6 +21,7 @@
 import android.database.MatrixCursor;
 import android.support.v7.widget.RecyclerView;
 import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.MediumTest;
 import android.text.TextUtils;
 import android.view.View;
 import android.view.ViewGroup;
@@ -33,6 +34,7 @@
  *   adb shell am instrument -e class com.android.dialer.calllog.GroupingListAdapterTests \
  *     -w com.android.dialer.tests/android.test.InstrumentationTestRunner
  */
+@MediumTest
 public class GroupingListAdapterTests extends AndroidTestCase {
 
     static private final String[] PROJECTION = new String[] {
@@ -161,6 +163,6 @@
     private void assertMetadata(int listPosition, int groupSize, String objectValue) {
         assertEquals(groupSize, mAdapter.getGroupSize(listPosition));
         MatrixCursor cursor = (MatrixCursor) mAdapter.getItem(listPosition);
-        assertEquals(objectValue, (String) cursor.getString(GROUPING_COLUMN_INDEX));
+        assertEquals(objectValue, cursor.getString(GROUPING_COLUMN_INDEX));
     }
 }
diff --git a/tests/src/com/android/dialer/calllog/PhoneCallDetailsHelperTest.java b/tests/src/com/android/dialer/calllog/PhoneCallDetailsHelperTest.java
index b255edf..ecbb898 100644
--- a/tests/src/com/android/dialer/calllog/PhoneCallDetailsHelperTest.java
+++ b/tests/src/com/android/dialer/calllog/PhoneCallDetailsHelperTest.java
@@ -20,6 +20,7 @@
 import android.content.res.Resources;
 import android.provider.CallLog.Calls;
 import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.MediumTest;
 import android.text.Html;
 import android.text.Spanned;
 import android.view.View;
@@ -34,8 +35,9 @@
 import java.util.Locale;
 
 /**
- * Unit tests for {@link PhoneCallDetailsHelper}.m
+ * Unit tests for {@link PhoneCallDetailsHelper}.
  */
+@MediumTest
 public class PhoneCallDetailsHelperTest extends AndroidTestCase {
     /** The number to be used to access the voicemail. */
     private static final String TEST_VOICEMAIL_NUMBER = "125";
diff --git a/tests/src/com/android/dialer/database/FilteredNumberProviderTest.java b/tests/src/com/android/dialer/database/FilteredNumberProviderTest.java
index c8d6403..1191560 100644
--- a/tests/src/com/android/dialer/database/FilteredNumberProviderTest.java
+++ b/tests/src/com/android/dialer/database/FilteredNumberProviderTest.java
@@ -24,7 +24,9 @@
 import android.database.DatabaseUtils;
 import android.net.Uri;
 import android.test.ProviderTestCase2;
+import android.test.suitebuilder.annotation.MediumTest;
 
+@MediumTest
 public class FilteredNumberProviderTest extends
         ProviderTestCase2<FilteredNumberProviderTest.TestFilteredNumberProvider> {
     private ContentResolver mResolver;
diff --git a/tests/src/com/android/dialer/filterednumber/FilteredNumbersUtilTest.java b/tests/src/com/android/dialer/filterednumber/FilteredNumbersUtilTest.java
index 8011755..a212e0f 100644
--- a/tests/src/com/android/dialer/filterednumber/FilteredNumbersUtilTest.java
+++ b/tests/src/com/android/dialer/filterednumber/FilteredNumbersUtilTest.java
@@ -23,6 +23,7 @@
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
 import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
 
 import org.mockito.Matchers;
 import org.mockito.Mock;
@@ -30,6 +31,7 @@
 
 import java.util.LinkedList;
 
+@SmallTest
 public class FilteredNumbersUtilTest extends AndroidTestCase {
 
     private static final String NORMAL_PHONE_NUMBER = "555-555-5555";
diff --git a/tests/src/com/android/dialer/list/PhoneFavoritesTileAdapterTest.java b/tests/src/com/android/dialer/list/PhoneFavoritesTileAdapterTest.java
index c2069bd..d0547bd 100644
--- a/tests/src/com/android/dialer/list/PhoneFavoritesTileAdapterTest.java
+++ b/tests/src/com/android/dialer/list/PhoneFavoritesTileAdapterTest.java
@@ -4,6 +4,7 @@
 import android.database.MatrixCursor;
 import android.provider.ContactsContract.PinnedPositions;
 import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.contacts.common.ContactTileLoaderFactory;
 import com.android.contacts.common.list.ContactEntry;
@@ -11,6 +12,7 @@
 
 import java.util.ArrayList;
 
+@SmallTest
 public class PhoneFavoritesTileAdapterTest extends AndroidTestCase {
     private PhoneFavoritesTileAdapter mAdapter;
     private static final OnDataSetChangedForAnimationListener
diff --git a/tests/src/com/android/dialer/onboard/DefaultDialerOnboardScreenTest.java b/tests/src/com/android/dialer/onboard/DefaultDialerOnboardScreenTest.java
index 26e513f..5e6544f 100644
--- a/tests/src/com/android/dialer/onboard/DefaultDialerOnboardScreenTest.java
+++ b/tests/src/com/android/dialer/onboard/DefaultDialerOnboardScreenTest.java
@@ -18,12 +18,14 @@
 import static org.mockito.Mockito.when;
 
 import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.dialer.onboard.OnboardingActivity.DefaultDialerOnboardingScreen;
 
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
+@SmallTest
 public class DefaultDialerOnboardScreenTest extends AndroidTestCase {
     private DefaultDialerOnboardingScreen mScreen;
     @Mock private PermissionsChecker mPermissionsChecker;
diff --git a/tests/src/com/android/dialer/onboard/OnboardingControllerTest.java b/tests/src/com/android/dialer/onboard/OnboardingControllerTest.java
index 3ca39a7..d634855 100644
--- a/tests/src/com/android/dialer/onboard/OnboardingControllerTest.java
+++ b/tests/src/com/android/dialer/onboard/OnboardingControllerTest.java
@@ -17,8 +17,10 @@
 
 import android.app.Activity;
 import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
 import android.test.suitebuilder.annotation.Suppress;
 
+@SmallTest
 public class OnboardingControllerTest extends AndroidTestCase {
     private MockOnboardUi mOnboardUi;
     private OnboardingController mController;
diff --git a/tests/src/com/android/dialer/onboard/PermissionsOnboardScreenTest.java b/tests/src/com/android/dialer/onboard/PermissionsOnboardScreenTest.java
index ff5e3d5..4c5ea33 100644
--- a/tests/src/com/android/dialer/onboard/PermissionsOnboardScreenTest.java
+++ b/tests/src/com/android/dialer/onboard/PermissionsOnboardScreenTest.java
@@ -18,12 +18,14 @@
 import static org.mockito.Mockito.when;
 
 import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.dialer.onboard.OnboardingActivity.PermissionsOnboardingScreen;
 
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
+@SmallTest
 public class PermissionsOnboardScreenTest extends AndroidTestCase {
     private PermissionsOnboardingScreen mScreen;
     @Mock private PermissionsChecker mPermissionsChecker;