Update suggestion/support UI to use more negative space.

Bug: 28435214

-- Tweaked layout and padding in suggestions and support tab.
-- Added support to show different text color in SlidingTabLayout.

Change-Id: If5d90ec5360e35565176aae7475e355c27fcef7c
diff --git a/res/color/sliding_tab_title_text_color.xml b/res/color/sliding_tab_title_text_color.xml
new file mode 100644
index 0000000..925ab97
--- /dev/null
+++ b/res/color/sliding_tab_title_text_color.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2016 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_selected="false"
+          android:color="#b3ffffff"/>
+    <item android:color="@android:color/white"/>
+</selector>
diff --git a/res/drawable/selectable_card_grey.xml b/res/drawable/selectable_card_grey.xml
new file mode 100644
index 0000000..e4c73ba
--- /dev/null
+++ b/res/drawable/selectable_card_grey.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2016 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.
+-->
+
+<ripple
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:color="?android:attr/colorControlHighlight">
+    <item android:drawable="@color/card_background_grey"/>
+</ripple>
diff --git a/res/layout/dashboard_spacer.xml b/res/layout/dashboard_spacer.xml
index 19ef8ff..b26f1e5 100644
--- a/res/layout/dashboard_spacer.xml
+++ b/res/layout/dashboard_spacer.xml
@@ -14,6 +14,8 @@
      limitations under the License.
 -->
 
-<View xmlns:android="http://schemas.android.com/apk/res/android"
-        android:layout_width="match_parent"
-        android:layout_height="6dp" />
+<View
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="6dp"
+    android:background="@color/card_background_grey"/>
diff --git a/res/layout/sliding_tab_title_view.xml b/res/layout/sliding_tab_title_view.xml
index 0386345..1a4328f 100644
--- a/res/layout/sliding_tab_title_view.xml
+++ b/res/layout/sliding_tab_title_view.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 Android Open Source Project
+<!--
+     Copyright (C) 2016 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.
@@ -19,10 +20,10 @@
     android:layout_width="0dp"
     android:layout_weight="1"
     android:layout_height="wrap_content"
-    android:ellipsize="end"
-    android:maxLines="1"
-    android:textColor="@android:color/white"
-    android:gravity="center"
     android:background="?android:attr/selectableItemBackground"
-    android:textAllCaps="true"
-    android:padding="@dimen/pager_tabs_title_padding"/>
\ No newline at end of file
+    android:ellipsize="end"
+    android:gravity="center"
+    android:maxLines="1"
+    android:padding="@dimen/pager_tabs_title_padding"
+    android:textColor="@color/sliding_tab_title_text_color"
+    android:textAllCaps="true"/>
diff --git a/res/layout/suggestion_header.xml b/res/layout/suggestion_header.xml
index c48553e..b30df60 100644
--- a/res/layout/suggestion_header.xml
+++ b/res/layout/suggestion_header.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 The Android Open Source Project
+<!--
+     Copyright (C) 2016 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.
@@ -20,27 +21,31 @@
     android:layout_height="@dimen/dashboard_category_height"
     android:clickable="true"
     android:focusable="true"
-    android:background="@drawable/selectable_card"
-    android:elevation="@dimen/dashboard_category_elevation"
+    android:background="@drawable/selectable_card_grey"
     android:gravity="center_vertical" >
-
-    <TextView android:id="@android:id/title"
+    <ImageView
+        android:id="@android:id/icon"
+        android:layout_width="@dimen/dashboard_tile_image_size"
+        android:layout_height="@dimen/dashboard_tile_image_size"
+        android:layout_marginStart="@dimen/dashboard_tile_image_margin_start"
+        android:layout_marginEnd="@dimen/dashboard_tile_image_margin_end"
+        android:src="@drawable/ic_expand_more"/>
+    <TextView
+        android:id="@android:id/title"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_weight="1"
-        android:paddingStart="16dp"
         android:singleLine="true"
         android:textAppearance="@style/TextAppearance.TileTitle"
         android:textColor="?android:attr/colorAccent"
-        android:alpha=".87"
         android:ellipsize="marquee"
-        android:fadingEdge="horizontal" />
-
-    <ImageView android:id="@android:id/icon"
-        android:layout_width="@dimen/dashboard_tile_image_size"
-        android:layout_height="@dimen/dashboard_tile_image_size"
-        android:layout_marginStart="@dimen/suggestion_arrow_margin"
-        android:layout_marginEnd="@dimen/suggestion_arrow_margin"
-        android:src="@drawable/ic_expand_more" />
-
+        android:fadingEdge="horizontal"/>
+    <TextView
+        android:id="@android:id/summary"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:gravity="end"
+        android:paddingEnd="16dp"
+        android:textAppearance="@style/TextAppearance.TileTitle"
+        android:textColor="?android:attr/colorAccent"/>
 </LinearLayout>
diff --git a/res/layout/suggestion_tile.xml b/res/layout/suggestion_tile.xml
index 10c9558..9ffd455 100644
--- a/res/layout/suggestion_tile.xml
+++ b/res/layout/suggestion_tile.xml
@@ -18,70 +18,58 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
+    android:background="@drawable/selectable_card_grey"
     android:clickable="true"
     android:focusable="true"
-    android:background="@drawable/selectable_card"
-    android:elevation="@dimen/dashboard_category_elevation"
-    android:orientation="vertical" >
+    android:gravity="center_vertical"
+    android:minHeight="@dimen/dashboard_tile_minimum_height">
 
-    <View
-        android:layout_width="match_parent"
-        android:layout_height="1dp"
-        android:background="?android:attr/listDivider" />
+    <ImageView
+        android:id="@android:id/icon"
+        android:layout_width="@dimen/dashboard_tile_image_size"
+        android:layout_height="@dimen/dashboard_tile_image_size"
+        android:layout_marginStart="@dimen/dashboard_tile_image_margin_start"
+        android:layout_marginEnd="@dimen/dashboard_tile_image_margin_end"
+        android:scaleType="centerInside"/>
 
-    <LinearLayout
-        android:layout_width="match_parent"
+    <RelativeLayout
+        android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:gravity="center_vertical"
-        android:minHeight="@dimen/dashboard_tile_minimum_height">
+        android:layout_weight="1">
+
+        <TextView android:id="@android:id/title"
+                  android:layout_width="wrap_content"
+                  android:layout_height="wrap_content"
+                  android:singleLine="true"
+                  android:textAppearance="@style/TextAppearance.TileTitle"
+                  android:ellipsize="marquee"
+                  android:fadingEdge="horizontal"/>
+
+        <TextView android:id="@android:id/summary"
+                  android:layout_width="wrap_content"
+                  android:layout_height="wrap_content"
+                  android:layout_below="@android:id/title"
+                  android:layout_alignStart="@android:id/title"
+                  android:textAppearance="@style/TextAppearance.Small"
+                  android:textColor="?android:attr/textColorSecondary"/>
+
+    </RelativeLayout>
+
+    <FrameLayout
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent">
 
         <ImageView
-            android:id="@android:id/icon"
-            android:layout_width="@dimen/dashboard_tile_image_size"
-            android:layout_height="@dimen/dashboard_tile_image_size"
-            android:scaleType="centerInside"
-            android:layout_marginStart="@dimen/dashboard_tile_image_margin_start"
-            android:layout_marginEnd="@dimen/dashboard_tile_image_margin_end" />
-
-        <RelativeLayout
+            android:id="@+id/overflow"
+            style="?android:attr/actionOverflowButtonStyle"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_weight="1">
+            android:paddingStart="16dp"
+            android:paddingTop="16dp"
+            android:paddingEnd="18dp"
+            android:paddingBottom="16dp"
+            android:gravity="top"/>
 
-            <TextView android:id="@android:id/title"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:singleLine="true"
-                android:textAppearance="@style/TextAppearance.TileTitle"
-                android:ellipsize="marquee"
-                android:fadingEdge="horizontal" />
+    </FrameLayout>
 
-            <TextView android:id="@android:id/summary"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_below="@android:id/title"
-                android:layout_alignStart="@android:id/title"
-                android:textAppearance="@style/TextAppearance.Small"
-                android:textColor="?android:attr/textColorSecondary" />
-
-        </RelativeLayout>
-
-        <FrameLayout
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent">
-
-            <ImageView android:id="@+id/overflow"
-                android:layout_width="44dp"
-                android:layout_height="44dp"
-                android:paddingStart="16dp"
-                android:paddingBottom="16dp"
-                android:paddingTop="12dp"
-                android:paddingEnd="12dp"
-                android:gravity="top"
-                style="?android:attr/actionOverflowButtonStyle" />
-
-        </FrameLayout>
-
-    </LinearLayout>
-
-</LinearLayout>
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/support_escalation_options.xml b/res/layout/support_escalation_options.xml
index 6944edb..6b88908 100644
--- a/res/layout/support_escalation_options.xml
+++ b/res/layout/support_escalation_options.xml
@@ -19,9 +19,9 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:background="@color/support_escalation_background"
+    android:background="@color/card_background_grey"
     android:gravity="center_horizontal"
-    android:paddingBottom="8dp">
+    android:paddingBottom="40dp">
     <LinearLayout
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
@@ -39,6 +39,7 @@
             android:id="@+id/summary1"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
+            android:layout_marginTop="14dp"
             android:textAppearance="@style/TextAppearance.Small"
             android:textColor="?android:attr/textColorSecondary"/>
     </LinearLayout>
@@ -59,6 +60,7 @@
             android:id="@+id/summary2"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
+            android:layout_marginTop="14dp"
             android:textAppearance="@style/TextAppearance.Small"
             android:textColor="?android:attr/textColorSecondary"/>
     </LinearLayout>
diff --git a/res/layout/support_item_title.xml b/res/layout/support_item_title.xml
index b99a552..0110da0 100644
--- a/res/layout/support_item_title.xml
+++ b/res/layout/support_item_title.xml
@@ -19,9 +19,9 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:background="@color/support_escalation_background"
-    android:paddingTop="32dp"
-    android:paddingBottom="32dp"
+    android:background="@color/card_background_grey"
+    android:paddingTop="40dp"
+    android:paddingBottom="42dp"
     android:paddingStart="56dp"
     android:paddingEnd="56dp"
     android:orientation="vertical">
@@ -29,11 +29,13 @@
         android:id="@android:id/text1"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:gravity="center_horizontal"
         android:textAppearance="@style/TextAppearance.SupportTitle"/>
     <TextView
         android:id="@android:id/text2"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:gravity="center_horizontal"
         android:paddingTop="8dp"
         android:textAppearance="@style/TextAppearance.Small"
         android:textColor="?android:attr/textColorSecondary"/>
diff --git a/res/layout/support_sign_in_button.xml b/res/layout/support_sign_in_button.xml
index 4a14ac3..fb789e8 100644
--- a/res/layout/support_sign_in_button.xml
+++ b/res/layout/support_sign_in_button.xml
@@ -19,7 +19,7 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:background="@color/support_escalation_background"
+    android:background="@color/card_background_grey"
     android:gravity="center_horizontal"
     android:orientation="vertical">
     <Button
@@ -32,5 +32,7 @@
         android:id="@android:id/text2"
         style="@style/SupportSecondaryButton"
         android:layout_width="wrap_content"
-        android:layout_height="wrap_content"/>
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="16dp"
+        android:minHeight="48dp"/>
 </LinearLayout>
\ No newline at end of file
diff --git a/res/values/colors.xml b/res/values/colors.xml
index b9a4826..81f3d32 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -131,6 +131,6 @@
 
     <color name="usage_graph_dots">#B0BEC5</color>
 
-    <color name="support_escalation_background">#eeeeee</color>
+    <color name="card_background_grey">#eeeeee</color>
 
 </resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 5c81f12..c50e226 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -119,8 +119,6 @@
     <dimen name="dashboard_tile_image_margin_start">16dp</dimen>
     <dimen name="dashboard_tile_image_margin_end">32dp</dimen>
 
-    <dimen name="suggestion_arrow_margin">16dp</dimen>
-
     <!-- SwitchBar margin start / end -->
     <dimen name="switchbar_margin_start">16dp</dimen>
     <dimen name="switchbar_margin_end">16dp</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 65644f3..00c1130 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -7200,7 +7200,10 @@
     <string name="condition_work_summary">Apps, background sync, and other features related to your work profile are turned off.</string>
 
     <!-- Title for the suggestions section on the dashboard [CHAR LIMIT=30] -->
-    <string name="suggestions_title">Suggestions (<xliff:g name="count" example="3">%1$d</xliff:g>)</string>
+    <string name="suggestions_title">Suggestions</string>
+
+    <!-- Summary for the suggestions section on the dashboard, representing number of suggestions. [CHAR LIMIT=10] -->
+    <string name="suggestions_summary">+<xliff:g name="count" example="3">%1$d</xliff:g></string>
 
     <!-- Name of option to remove a suggestion from the list [CHAR LIMIT=30] -->
     <string name="suggestion_remove">Remove</string>
@@ -7491,7 +7494,7 @@
     <string name="deletion_helper_free_button">Free up <xliff:g id="freeable" example="1.2GB">%1$s</xliff:g></string>
 
     <!-- Title text for connecting to customer support [CHAR LIMIT=80]-->
-    <string name="support_escalation_title">Around-the-clock help</string>
+    <string name="support_escalation_title">Around-the-clock support</string>
 
     <!-- Summary text for connecting to customer support [CHAR LIMIT=NONE]-->
     <string name="support_escalation_summary">You can request a support call or chat and we\'ll get back to you with a quickness</string>
diff --git a/src/com/android/settings/dashboard/DashboardAdapter.java b/src/com/android/settings/dashboard/DashboardAdapter.java
index 3fb413a..54ada8c 100644
--- a/src/com/android/settings/dashboard/DashboardAdapter.java
+++ b/src/com/android/settings/dashboard/DashboardAdapter.java
@@ -163,10 +163,7 @@
         countItem(null, R.layout.suggestion_header, hasSuggestions, NS_SPACER);
         resetCount();
         if (mSuggestions != null) {
-            int maxSuggestions = mSuggestionMode == SUGGESTION_MODE_DEFAULT
-                    ? Math.min(DEFAULT_SUGGESTION_COUNT, mSuggestions.size())
-                    : mSuggestionMode == SUGGESTION_MODE_EXPANDED ? mSuggestions.size()
-                    : 0;
+            int maxSuggestions = getDisplayableSuggestionCount();
             for (int i = 0; i < mSuggestions.size(); i++) {
                 countItem(mSuggestions.get(i), R.layout.suggestion_tile, i < maxSuggestions,
                         NS_SUGGESTION);
@@ -208,6 +205,14 @@
         mId++;
     }
 
+    private int getDisplayableSuggestionCount() {
+        final int suggestionSize = mSuggestions.size();
+        return mSuggestionMode == SUGGESTION_MODE_DEFAULT
+                ? Math.min(DEFAULT_SUGGESTION_COUNT, suggestionSize)
+                : mSuggestionMode == SUGGESTION_MODE_EXPANDED
+                        ? suggestionSize : 0;
+    }
+
     @Override
     public DashboardItemHolder onCreateViewHolder(ViewGroup parent, int viewType) {
         return new DashboardItemHolder(LayoutInflater.from(parent.getContext()).inflate(
@@ -296,6 +301,14 @@
         holder.icon.setImageResource(hasMoreSuggestions() ? R.drawable.ic_expand_more
                 : R.drawable.ic_expand_less);
         holder.title.setText(mContext.getString(R.string.suggestions_title, mSuggestions.size()));
+        final int undisplayedSuggestionCount =
+                mSuggestions.size() - getDisplayableSuggestionCount();
+        if (undisplayedSuggestionCount == 0) {
+            holder.summary.setText(null);
+        } else {
+            holder.summary.setText(
+                    mContext.getString(R.string.suggestions_summary, undisplayedSuggestionCount));
+        }
         holder.itemView.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
diff --git a/src/com/android/settings/widget/SlidingTabLayout.java b/src/com/android/settings/widget/SlidingTabLayout.java
index 176bebc..219d37b 100644
--- a/src/com/android/settings/widget/SlidingTabLayout.java
+++ b/src/com/android/settings/widget/SlidingTabLayout.java
@@ -120,9 +120,7 @@
             tabTitleView.setOnClickListener(this);
 
             mTitleView.addView(tabTitleView);
-            if (i == mViewPager.getCurrentItem()) {
-                tabTitleView.setSelected(true);
-            }
+            tabTitleView.setSelected(i == mViewPager.getCurrentItem());
         }
     }
 
@@ -159,9 +157,9 @@
             if (mScrollState == ViewPager.SCROLL_STATE_IDLE) {
                 onViewPagerPageChanged(position, 0f);
             }
-            final int titleCount = getChildCount();
+            final int titleCount = mTitleView.getChildCount();
             for (int i = 0; i < titleCount; i++) {
-                getChildAt(i).setSelected(position == i);
+                mTitleView.getChildAt(i).setSelected(position == i);
             }
         }
     }