Merge "Add @NeededForTesting to GroupsDao" into ub-contactsdialer-g-dev
diff --git a/res/drawable-hdpi/ic_scroll_handle.png b/res/drawable-hdpi/ic_scroll_handle.png
deleted file mode 100644
index 3aa29b8..0000000
--- a/res/drawable-hdpi/ic_scroll_handle.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_scroll_handle.png b/res/drawable-mdpi/ic_scroll_handle.png
deleted file mode 100644
index af75db4..0000000
--- a/res/drawable-mdpi/ic_scroll_handle.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_scroll_handle.png b/res/drawable-xhdpi/ic_scroll_handle.png
deleted file mode 100644
index 2d43c4d..0000000
--- a/res/drawable-xhdpi/ic_scroll_handle.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_scroll_handle.png b/res/drawable-xxhdpi/ic_scroll_handle.png
deleted file mode 100644
index 55f1d13..0000000
--- a/res/drawable-xxhdpi/ic_scroll_handle.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_scroll_handle.png b/res/drawable-xxxhdpi/ic_scroll_handle.png
deleted file mode 100644
index d90782a..0000000
--- a/res/drawable-xxxhdpi/ic_scroll_handle.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/fastscroll_thumb.xml b/res/drawable/fastscroll_thumb.xml
deleted file mode 100644
index eca4b39..0000000
--- a/res/drawable/fastscroll_thumb.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 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.
--->
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_pressed="true" android:drawable="@drawable/ic_scroll_handle_pressed" />
-    <item android:drawable="@drawable/ic_scroll_handle_default" />
-</selector>
\ No newline at end of file
diff --git a/res/drawable/ic_scroll_handle_default.xml b/res/drawable/ic_scroll_handle_default.xml
deleted file mode 100644
index 055005e..0000000
--- a/res/drawable/ic_scroll_handle_default.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2014 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_scroll_handle"
-    android:tint="@color/dialtacts_secondary_text_color" />
\ No newline at end of file
diff --git a/res/drawable/ic_scroll_handle_pressed.xml b/res/drawable/ic_scroll_handle_pressed.xml
deleted file mode 100644
index 9109c81..0000000
--- a/res/drawable/ic_scroll_handle_pressed.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2014 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_scroll_handle"
-    android:tint="@color/dialtacts_theme_color" />
\ No newline at end of file
diff --git a/res/values/donottranslate_config.xml b/res/values/donottranslate_config.xml
index 8668159..ac46a55 100644
--- a/res/values/donottranslate_config.xml
+++ b/res/values/donottranslate_config.xml
@@ -114,6 +114,4 @@
     <string name="pref_open_source_licenses_key">pref_open_source_licenses</string>
     <string name="pref_privacy_policy_key">pref_privacy_policy</string>
     <string name="pref_terms_of_service_key">pref_terms_of_service</string>
-
-    <string name="star_sign">\u2605</string>
 </resources>
diff --git a/src/com/android/contacts/common/list/ContactEntryListAdapter.java b/src/com/android/contacts/common/list/ContactEntryListAdapter.java
index 1ac8fd5..0d20d6e 100644
--- a/src/com/android/contacts/common/list/ContactEntryListAdapter.java
+++ b/src/com/android/contacts/common/list/ContactEntryListAdapter.java
@@ -370,7 +370,7 @@
     public void setFavoritesSectionHeader(int numberOfFavorites) {
         if (mIncludeFavorites) {
             mNumberOfFavorites = numberOfFavorites;
-            setSectionHeader(R.string.star_sign, numberOfFavorites);
+            setSectionHeader(numberOfFavorites);
         }
     }
 
@@ -378,11 +378,10 @@
         return mNumberOfFavorites;
     }
 
-    private void setSectionHeader(int resId, int numberOfItems) {
+    private void setSectionHeader(int numberOfItems) {
         SectionIndexer indexer = getIndexer();
         if (indexer != null) {
-            ((ContactsSectionIndexer) indexer).setProfileAndFavoritesHeader(
-                    getContext().getString(resId), numberOfItems);
+            ((ContactsSectionIndexer) indexer).setFavoritesHeader(numberOfItems);
         }
     }
 
diff --git a/src/com/android/contacts/common/list/ContactListItemView.java b/src/com/android/contacts/common/list/ContactListItemView.java
index 1dc99ef..67f6d35 100644
--- a/src/com/android/contacts/common/list/ContactListItemView.java
+++ b/src/com/android/contacts/common/list/ContactListItemView.java
@@ -979,8 +979,9 @@
      * Sets section header or makes it invisible if the title is null.
      */
     public void setSectionHeader(String title) {
-        if (!TextUtils.isEmpty(title)) {
-            if (TextUtils.equals(getContext().getString(R.string.star_sign), title)) {
+        if (title != null) {
+            // Empty section title is the favorites so show the star here.
+            if (title.isEmpty()) {
                 if (mHeaderView == null) {
                     addStarImageHeader();
                 } else if (mHeaderView instanceof TextView) {
diff --git a/src/com/android/contacts/common/list/ContactListPinnedHeaderView.java b/src/com/android/contacts/common/list/ContactListPinnedHeaderView.java
index 6e8e738..c208bef 100644
--- a/src/com/android/contacts/common/list/ContactListPinnedHeaderView.java
+++ b/src/com/android/contacts/common/list/ContactListPinnedHeaderView.java
@@ -19,16 +19,13 @@
 import android.content.Context;
 import android.content.res.TypedArray;
 import android.graphics.Color;
-import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.view.Gravity;
 import android.view.View;
-import android.view.ViewParent;
 import android.widget.LinearLayout.LayoutParams;
 import android.widget.TextView;
 
 import com.android.contacts.common.R;
-import com.android.contacts.common.util.ViewUtil;
 
 /**
  * A custom view for the pinned section header shown at the top of the contact list.
@@ -72,7 +69,7 @@
      * Sets section header or makes it invisible if the title is null.
      */
     public void setSectionHeaderTitle(String title) {
-        if (!TextUtils.isEmpty(title)) {
+        if (title != null) {
             setText(title);
             setVisibility(View.VISIBLE);
         } else {
diff --git a/src/com/android/contacts/common/list/ContactsSectionIndexer.java b/src/com/android/contacts/common/list/ContactsSectionIndexer.java
index db64010..031380d 100644
--- a/src/com/android/contacts/common/list/ContactsSectionIndexer.java
+++ b/src/com/android/contacts/common/list/ContactsSectionIndexer.java
@@ -55,6 +55,7 @@
         mPositions = new int[counts.length];
         int position = 0;
         for (int i = 0; i < counts.length; i++) {
+            // Enforce that there will be no null or empty sections.
             if (TextUtils.isEmpty(mSections[i])) {
                 mSections[i] = BLANK_HEADER_STRING;
             } else if (!mSections[i].equals(BLANK_HEADER_STRING)) {
@@ -101,10 +102,10 @@
         return index >= 0 ? index : -index - 2;
     }
 
-    public void setProfileAndFavoritesHeader(String header, int numberOfItemsToAdd) {
+    public void setFavoritesHeader(int numberOfItemsToAdd) {
         if (mSections != null) {
             // Don't do anything if the header is already set properly.
-            if (mSections.length > 0 && header.equals(mSections[0])) {
+            if (mSections.length > 0 && mSections[0].isEmpty()) {
                 return;
             }
 
@@ -112,7 +113,8 @@
             // special section at the top for it and shift everything else down.
             String[] tempSections = new String[mSections.length + 1];
             int[] tempPositions = new int[mPositions.length + 1];
-            tempSections[0] = header;
+            // Favorites section is empty to hide fast scroll preview.
+            tempSections[0] = "";
             tempPositions[0] = 0;
             for (int i = 1; i <= mPositions.length; i++) {
                 tempSections[i] = mSections[i - 1];
diff --git a/src/com/android/contacts/common/list/PinnedHeaderListView.java b/src/com/android/contacts/common/list/PinnedHeaderListView.java
index 45ce4b3..b68ff1f 100644
--- a/src/com/android/contacts/common/list/PinnedHeaderListView.java
+++ b/src/com/android/contacts/common/list/PinnedHeaderListView.java
@@ -19,7 +19,6 @@
 import android.content.Context;
 import android.graphics.Canvas;
 import android.graphics.RectF;
-import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.view.MotionEvent;
 import android.view.View;
@@ -31,7 +30,6 @@
 import android.widget.ListAdapter;
 import android.widget.TextView;
 
-import com.android.contacts.common.R;
 import com.android.contacts.common.util.ViewUtil;
 
 /**
@@ -318,8 +316,7 @@
         // Hide header when it's a star.
         // TODO: try showing the view even when it's a star;
         // if we have to hide the star view, then try hiding it in some higher layer.
-        header.visible = !TextUtils.equals(
-                ((TextView) header.view).getText(), getContext().getString(R.string.star_sign));
+        header.visible = !((TextView) header.view).getText().toString().isEmpty();
         header.state = FADING;
         header.alpha = MAX_ALPHA;
         header.animating = false;