Merge "Bring action bar up to spec (E3)"
diff --git a/res/drawable/ic_menu_delete.xml b/res/drawable/ic_menu_delete.xml
index e95a5db..d994368 100644
--- a/res/drawable/ic_menu_delete.xml
+++ b/res/drawable/ic_menu_delete.xml
@@ -21,6 +21,6 @@
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
     <path
-        android:fillColor="#FFFFFFFF"
+        android:fillColor="@color/actionbar_icon_color_grey"
         android:pathData="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"/>
 </vector>
diff --git a/res/drawable/ic_menu_link.xml b/res/drawable/ic_menu_link.xml
index b962460..e631034 100644
--- a/res/drawable/ic_menu_link.xml
+++ b/res/drawable/ic_menu_link.xml
@@ -21,6 +21,6 @@
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
     <path
-        android:fillColor="#FFFFFFFF"
+        android:fillColor="@color/actionbar_icon_color_grey"
         android:pathData="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/>
 </vector>
diff --git a/res/drawable/ic_menu_share.xml b/res/drawable/ic_menu_share.xml
index 60217e2..99e873b 100644
--- a/res/drawable/ic_menu_share.xml
+++ b/res/drawable/ic_menu_share.xml
@@ -21,6 +21,6 @@
         android:viewportHeight="24.0"
         android:viewportWidth="24.0">
     <path
-        android:fillColor="#FFFFFFFF"
+        android:fillColor="@color/actionbar_icon_color_grey"
         android:pathData="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z"/>
 </vector>
diff --git a/res/layout/selection_bar.xml b/res/layout/selection_bar.xml
index 6c11a39..f8fd7fc 100644
--- a/res/layout/selection_bar.xml
+++ b/res/layout/selection_bar.xml
@@ -28,16 +28,19 @@
         android:background="?attr/selectableItemBackgroundBorderless"
         android:contentDescription="@string/action_menu_back_from_edit_select"
         android:layout_gravity="center_vertical|start"
-        android:tint="@android:color/white" />
+        android:alpha="@dimen/close_icon_alpha" />
 
     <TextView
         android:id="@+id/selection_count_text"
         android:layout_marginStart="72dp"
+        android:layout_marginEnd="@dimen/edit_group_end_margin"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:visibility="gone"
         android:layout_gravity="center_vertical|start"
-        style="@style/ContactsActionBarTitleTextAppCompat" />
+        android:singleLine="true"
+        android:ellipsize="end"
+        style="@style/ContactsActionBarTitleTextBlack" />
 
     <TextView
         android:id="@+id/add_contacts"
@@ -47,7 +50,7 @@
         android:visibility="gone"
         android:layout_gravity="center_vertical|end"
         android:text="@string/menu_add_contacts"
-        android:textColor="@color/actionbar_text_color"
+        android:textColor="@color/primary_color"
         android:textStyle="bold"/>
 
 </FrameLayout>
diff --git a/res/values-sw600dp/dimens.xml b/res/values-sw600dp/dimens.xml
index 68e4e87..f0b28a9 100644
--- a/res/values-sw600dp/dimens.xml
+++ b/res/values-sw600dp/dimens.xml
@@ -45,4 +45,7 @@
     <dimen name="account_container_left_padding">16dip</dimen>
     <dimen name="contact_detail_list_top_padding">8dip</dimen>
     <dimen name="frequently_contacted_title_text_size">24sp</dimen>
+
+    <!-- End margin of edit group title -->
+    <dimen name="edit_group_end_margin">80dp</dimen>
 </resources>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index ee4f55a..8089a2e 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -30,9 +30,9 @@
     <color name="actionbar_background_color">@color/primary_color</color>
     <color name="actionbar_background_color_dark">@color/primary_color_dark</color>
 
-    <color name="contextual_selection_bar_color">#616161</color>
+    <color name="contextual_selection_bar_color">#f6f6f6</color>
     <!-- Color of the status bar above the contextual selection bar. -->
-    <color name="contextual_selection_bar_status_bar_color">#424242</color>
+    <color name="contextual_selection_bar_status_bar_color">#bababa</color>
 
     <color name="primary_color_dark">#0277bd</color>
     <color name="primary_color">#0288d1</color>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 2badc01..b1fecc8 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -286,4 +286,7 @@
 
     <!-- Width for the image for empty group view-->
     <dimen name="empty_group_view_image_width">232dp</dimen>
+
+    <!-- End margin of edit group title -->
+    <dimen name="edit_group_end_margin">72dp</dimen>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index b9a5f58..d72b4b2 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -672,7 +672,7 @@
     <string name="enter_contact_name">Search contacts</string>
 
     <!-- Title of edit label view  [CHAR LIMIT=20]-->
-    <string name="title_edit_group">Edit Label</string>
+    <string name="title_edit_group">Edit Label: <xliff:g id="group_name" example="Friends">%1$s</xliff:g></string>
 
     <!-- Header label in the contact editor for a profile that is local to the device only (and not associated with any account) [CHAR LIMIT=25] -->
     <string name="local_profile_title">My local profile</string>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 50d53dc..0af01f7 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -238,6 +238,10 @@
         <item name="android:textColor">@color/actionbar_text_color</item>
     </style>
 
+    <style name="ContactsActionBarTitleTextBlack" parent="@style/ContactsActionBarTitleTextAppCompat">
+        <item name="android:textColor">@color/actionbar_text_color_black</item>
+    </style>
+
     <!-- Styling for the tab bar; handles styling of the divider line. -->
     <style name="ContactsActionBarTabBarStyle"
            parent="@android:style/Widget.Material.ActionBar.TabBar">
diff --git a/src/com/android/contacts/activities/ActionBarAdapter.java b/src/com/android/contacts/activities/ActionBarAdapter.java
index be94860..aa48bce 100644
--- a/src/com/android/contacts/activities/ActionBarAdapter.java
+++ b/src/com/android/contacts/activities/ActionBarAdapter.java
@@ -20,6 +20,7 @@
 import android.app.Activity;
 import android.content.Context;
 import android.content.SharedPreferences;
+import android.content.res.ColorStateList;
 import android.content.res.TypedArray;
 import android.os.Bundle;
 import android.preference.PreferenceManager;
@@ -33,8 +34,10 @@
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.view.ViewTreeObserver;
 import android.view.inputmethod.InputMethodManager;
 import android.widget.FrameLayout;
+import android.widget.ImageView;
 import android.widget.LinearLayout.LayoutParams;
 import android.widget.SearchView.OnCloseListener;
 import android.view.View.OnClickListener;
@@ -46,6 +49,8 @@
 import com.android.contacts.common.compat.CompatUtils;
 import com.android.contacts.list.ContactsRequest;
 
+import java.util.ArrayList;
+
 /**
  * Adapter for the action bar at the top of the Contacts activity.
  */
@@ -421,6 +426,8 @@
     private void update(boolean skipAnimation) {
         updateStatusBarColor();
 
+        updateOverflowButtonColor();
+
         final boolean isSelectionModeChanging
                 = (mSelectionContainer.getParent() == null) == mSelectionMode;
         final boolean isSwitchingFromSearchToSelection =
@@ -502,6 +509,45 @@
         }
     }
 
+    /**
+     * Find overflow menu ImageView by its content description and update its color.
+     */
+    private void updateOverflowButtonColor() {
+        final String overflowDescription = mActivity.getResources().getString(
+                R.string.abc_action_menu_overflow_description);
+        final ViewGroup decorView = (ViewGroup) mActivity.getWindow().getDecorView();
+        final ViewTreeObserver viewTreeObserver = decorView.getViewTreeObserver();
+        viewTreeObserver.addOnGlobalLayoutListener(
+                new ViewTreeObserver.OnGlobalLayoutListener() {
+                    @Override
+                    public void onGlobalLayout() {
+                        // Find the overflow ImageView.
+                        final ArrayList<View> outViews = new ArrayList<>();
+                        decorView.findViewsWithText(outViews, overflowDescription,
+                                View.FIND_VIEWS_WITH_CONTENT_DESCRIPTION);
+                        if (outViews.isEmpty()) {
+                            return;
+                        }
+                        final ImageView overflow = (ImageView) outViews.get(0);
+                        overflow.setImageResource(R.drawable.ic_more_vert);
+
+                        // Update the overflow image color.
+                        final int iconColor;
+                        if (mSelectionMode) {
+                            iconColor = mActivity.getResources().getColor(
+                                    R.color.actionbar_color_grey_solid);
+                        } else {
+                            iconColor = mActivity.getResources().getColor(
+                                    R.color.actionbar_text_color);
+                        }
+                        overflow.setImageTintList(ColorStateList.valueOf(iconColor));
+
+                        // We're done, remove the listener.
+                        decorView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
+                    }
+                });
+    }
+
     public void setSelectionCount(int selectionCount) {
         TextView textView = (TextView) mSelectionContainer.findViewById(R.id.selection_count_text);
         if (selectionCount == 0) {
diff --git a/src/com/android/contacts/activities/GroupMembersActivity.java b/src/com/android/contacts/activities/GroupMembersActivity.java
index 88b5db2..34b6b25 100644
--- a/src/com/android/contacts/activities/GroupMembersActivity.java
+++ b/src/com/android/contacts/activities/GroupMembersActivity.java
@@ -495,7 +495,8 @@
                 if (mMembersFragment != null) {
                     if (mIsEditMode) {
                         mMembersFragment.displayDeleteButtons(true);
-                        mActionBarAdapter.setActionBarTitle(getString(R.string.title_edit_group));
+                        mActionBarAdapter.setActionBarTitle(
+                                getString(R.string.title_edit_group, mGroupMetadata.groupName));
                     } else {
                         mMembersFragment.displayCheckBoxes(true);
                     }
@@ -544,7 +545,8 @@
     @Override
     public void onSelectedContactIdsChanged() {
         if (mIsEditMode) {
-            mActionBarAdapter.setActionBarTitle(getString(R.string.title_edit_group));
+            mActionBarAdapter.setActionBarTitle(
+                    getString(R.string.title_edit_group, mGroupMetadata.groupName));
         } else {
             mActionBarAdapter.setSelectionCount(mMembersFragment.getSelectedContactIds().size());
         }