Update keyboard accessory style to match specs

This CL changes:
- colors
- spacing
- tap animation on suggestions in the accessory sheet
- keyboard accessory dividers

Bug: 856180
Change-Id: Ieb0809f5c175a481bb5d9d0b0e0e8187c300f542
Reviewed-on: https://chromium-review.googlesource.com/1163612
Commit-Queue: Ioana Pandele <ioanap@chromium.org>
Reviewed-by: Theresa <twellington@chromium.org>
Reviewed-by: Friedrich Horschig [CEST] <fhorschig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#585472}
diff --git a/chrome/android/java/res/layout/keyboard_accessory.xml b/chrome/android/java/res/layout/keyboard_accessory.xml
index d0c9528..4a73188 100644
--- a/chrome/android/java/res/layout/keyboard_accessory.xml
+++ b/chrome/android/java/res/layout/keyboard_accessory.xml
@@ -17,7 +17,6 @@
     android:layout_height="@dimen/keyboard_accessory_height"
     android:layout_width="match_parent"
     android:paddingEnd="0dp"
-    android:paddingStart="@dimen/keyboard_accessory_padding"
     android:clickable="true"
     android:focusable="true">
 
@@ -25,11 +24,13 @@
         android:id="@+id/tabs"
         app:tabIndicatorHeight="0dp"
         android:layout_width="wrap_content"
-        android:layout_height="match_parent" />
+        android:layout_height="match_parent"/>
+
+    <View style="@style/VerticalDivider" />
 
     <android.support.v7.widget.RecyclerView
         android:id="@+id/actions_view"
         android:layout_width="wrap_content"
-        android:layout_height="match_parent" />
+        android:layout_height="match_parent"/>
 
 </org.chromium.chrome.browser.autofill.keyboard_accessory.KeyboardAccessoryView>
diff --git a/chrome/android/java/res/layout/keyboard_accessory_action.xml b/chrome/android/java/res/layout/keyboard_accessory_action.xml
index 2de4c8c..3635972a 100644
--- a/chrome/android/java/res/layout/keyboard_accessory_action.xml
+++ b/chrome/android/java/res/layout/keyboard_accessory_action.xml
@@ -12,8 +12,8 @@
     android:minHeight="0dp"
     android:minWidth="0dp"
     android:paddingBottom="0dp"
-    android:paddingEnd="@dimen/keyboard_accessory_half_padding"
-    android:paddingStart="@dimen/keyboard_accessory_half_padding"
+    android:paddingEnd="@dimen/keyboard_accessory_action_padding"
+    android:paddingStart="@dimen/keyboard_accessory_action_padding"
     android:paddingTop="0dp"
     android:layout_marginBottom="@dimen/keyboard_accessory_half_padding"
     android:layout_marginTop="@dimen/keyboard_accessory_half_padding"
diff --git a/chrome/android/java/res/layout/password_accessory_sheet_label.xml b/chrome/android/java/res/layout/password_accessory_sheet_label.xml
index 4e85e90..e922c3df 100644
--- a/chrome/android/java/res/layout/password_accessory_sheet_label.xml
+++ b/chrome/android/java/res/layout/password_accessory_sheet_label.xml
@@ -11,5 +11,6 @@
     android:paddingEnd="16dp"
     android:fillViewport="true"
     android:layout_height="48dp"
+    android:gravity="center_vertical"
     android:textAppearance="@style/BlackHint1"
-    android:layout_width="match_parent"/>
\ No newline at end of file
+    android:layout_width="match_parent"/>
diff --git a/chrome/android/java/res/layout/password_accessory_sheet_option.xml b/chrome/android/java/res/layout/password_accessory_sheet_option.xml
index 81934f0b..06bfd64 100644
--- a/chrome/android/java/res/layout/password_accessory_sheet_option.xml
+++ b/chrome/android/java/res/layout/password_accessory_sheet_option.xml
@@ -12,4 +12,5 @@
     android:fillViewport="true"
     android:layout_height="48dp"
     android:textAppearance="@style/BlackTitle1"
-    android:layout_width="match_parent"/>
\ No newline at end of file
+    android:layout_width="match_parent"
+    android:background="?android:attr/selectableItemBackground"/>
\ No newline at end of file
diff --git a/chrome/android/java/res/layout/password_accessory_sheet_suggestion.xml b/chrome/android/java/res/layout/password_accessory_sheet_suggestion.xml
index d7cbb66..8d0eb919 100644
--- a/chrome/android/java/res/layout/password_accessory_sheet_suggestion.xml
+++ b/chrome/android/java/res/layout/password_accessory_sheet_suggestion.xml
@@ -6,10 +6,8 @@
 <TextView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/suggestion_text"
-    android:layout_marginStart="@dimen/keyboard_accessory_suggestion_margin"
-    android:paddingEnd="@dimen/keyboard_accessory_suggestion_margin"
     android:gravity="center_vertical|start"
     android:fillViewport="true"
     android:layout_height="@dimen/keyboard_accessory_suggestion_height"
-    android:textAppearance="@style/BlackTitle1"
-    android:layout_width="match_parent"/>
\ No newline at end of file
+    android:layout_width="match_parent"
+    android:textAppearance="@style/BlackTitle1"/>
\ No newline at end of file
diff --git a/chrome/android/java/res/values-v17/styles.xml b/chrome/android/java/res/values-v17/styles.xml
index fccda2d1..07aee30 100644
--- a/chrome/android/java/res/values-v17/styles.xml
+++ b/chrome/android/java/res/values-v17/styles.xml
@@ -220,12 +220,21 @@
         <item name="android:layout_marginTop">2dp</item>
         <item name="android:background">@color/google_grey_600</item>
     </style>
+
+    <!-- Dividers -->
     <style name="Divider">
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">@dimen/divider_height</item>
         <item name="android:background">@color/google_grey_300</item>
         <item name="android:importantForAccessibility">no</item>
     </style>
+    <style name="VerticalDivider">
+        <item name="android:layout_width">@dimen/divider_height</item>
+        <item name="android:layout_height">match_parent</item>
+        <item name="android:background">@color/google_grey_300</item>
+        <item name="android:importantForAccessibility">no</item>
+    </style>
+
 
     <style name="ThemeWithActionBarBase" parent="Theme.AppCompat.Light">
         <item name="android:windowBackground">@drawable/action_bar_activity_bg</item>
diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml
index 836c9b3..8be13ad5 100644
--- a/chrome/android/java/res/values/dimens.xml
+++ b/chrome/android/java/res/values/dimens.xml
@@ -125,11 +125,12 @@
 
     <!-- Autofill keyboard accessory dimensions -->
     <dimen name="keyboard_accessory_action_height">36dp</dimen>
+    <dimen name="keyboard_accessory_action_padding">16dp</dimen>
     <dimen name="keyboard_accessory_half_padding">6dp</dimen>
     <dimen name="keyboard_accessory_height">48dp</dimen>
     <dimen name="keyboard_accessory_padding">6dp</dimen>
     <dimen name="keyboard_accessory_sheet_height">330dp</dimen>
-    <dimen name="keyboard_accessory_suggestion_margin">16dp</dimen>
+    <dimen name="keyboard_accessory_suggestion_padding">16dp</dimen>
     <dimen name="keyboard_accessory_suggestion_height">48dp</dimen>
     <dimen name="keyboard_accessory_suggestion_icon_size">20dp</dimen>
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryView.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryView.java
index fa52318..d0be972 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryView.java
@@ -7,11 +7,10 @@
 import static org.chromium.ui.base.LocalizationUtils.isLayoutRtl;
 
 import android.content.Context;
-import android.graphics.Color;
-import android.graphics.PorterDuff;
 import android.graphics.Rect;
 import android.graphics.drawable.Drawable;
 import android.support.design.widget.TabLayout;
+import android.support.v4.graphics.drawable.DrawableCompat;
 import android.support.v4.view.ViewPager;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
@@ -94,6 +93,7 @@
         if (mTabLayout == null) return; // Inflation not done yet. Will be invoked again afterwards.
         TabLayout.Tab tab = mTabLayout.newTab();
         tab.setIcon(icon.mutate()); // mutate() needed to change the active tint.
+        DrawableCompat.setTint(tab.getIcon(), getResources().getColor(R.color.default_icon_color));
         tab.setContentDescription(contentDescription);
         mTabLayout.addTab(tab, position, false);
     }
@@ -129,11 +129,10 @@
         for (int i = mTabLayout.getTabCount() - 1; i >= 0; i--) {
             TabLayout.Tab t = mTabLayout.getTabAt(i);
             if (t == null || t.getIcon() == null) continue;
-            if (activeTab == null || i != activeTab) {
-                t.getIcon().clearColorFilter();
-            } else {
-                t.getIcon().setColorFilter(Color.BLUE, PorterDuff.Mode.SRC_ATOP);
-            }
+            int activeStateColor = (activeTab == null || i != activeTab)
+                    ? R.color.default_icon_color
+                    : R.color.default_icon_color_blue;
+            DrawableCompat.setTint(t.getIcon(), getResources().getColor(activeStateColor));
         }
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetViewBinder.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetViewBinder.java
index 70d6b1d..49f2ab6 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetViewBinder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetViewBinder.java
@@ -4,11 +4,11 @@
 
 package org.chromium.chrome.browser.autofill.keyboard_accessory;
 
+import android.content.res.TypedArray;
 import android.graphics.Bitmap;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.support.annotation.Nullable;
-import android.support.v4.view.MarginLayoutParamsCompat;
 import android.support.v7.content.res.AppCompatResources;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
@@ -111,14 +111,14 @@
      */
     static class IconTextViewHolder extends TextViewHolder {
         private final TextView mSuggestionText;
-        private final int mMargin;
+        private final int mPadding;
         private final int mIconSize;
 
         IconTextViewHolder(View itemView) {
             super(itemView);
             mSuggestionText = itemView.findViewById(R.id.suggestion_text);
-            mMargin = itemView.getContext().getResources().getDimensionPixelSize(
-                    R.dimen.keyboard_accessory_suggestion_margin);
+            mPadding = itemView.getContext().getResources().getDimensionPixelSize(
+                    R.dimen.keyboard_accessory_suggestion_padding);
             mIconSize = itemView.getContext().getResources().getDimensionPixelSize(
                     R.dimen.keyboard_accessory_suggestion_icon_size);
         }
@@ -131,19 +131,27 @@
         @Override
         protected void bind(Item item) {
             super.bind(item);
-            ViewGroup.MarginLayoutParams params =
-                    new ViewGroup.MarginLayoutParams(mSuggestionText.getLayoutParams());
-            MarginLayoutParamsCompat.setMarginEnd(params, mMargin);
             if (!item.isPassword()) {
                 setIconForBitmap(null); // Set the default icon, then try to get a better one.
                 item.fetchFavicon(this::setIconForBitmap);
-                MarginLayoutParamsCompat.setMarginStart(params, mMargin);
+                mSuggestionText.setPadding(mPadding, 0, mPadding, 0);
             } else {
                 ApiCompatibilityUtils.setCompoundDrawablesRelative(
                         mSuggestionText, null, null, null, null);
-                MarginLayoutParamsCompat.setMarginStart(params, 2 * mMargin + mIconSize);
+                mSuggestionText.setPadding(2 * mPadding + mIconSize, 0, mPadding, 0);
             }
-            mSuggestionText.setLayoutParams(params);
+
+            if (item.getItemSelectedCallback() == null) {
+                mSuggestionText.setEnabled(false);
+                mSuggestionText.setBackground(null);
+            } else {
+                mSuggestionText.setEnabled(true);
+                TypedArray a = mSuggestionText.getContext().obtainStyledAttributes(
+                        new int[] {R.attr.selectableItemBackground});
+                Drawable suggestionBackground = a.getDrawable(0);
+                a.recycle();
+                mSuggestionText.setBackground(suggestionBackground);
+            }
         }
 
         private void setIconForBitmap(@Nullable Bitmap favicon) {
@@ -157,7 +165,7 @@
             if (icon != null) { // AppCompatResources.getDrawable is @Nullable.
                 icon.setBounds(0, 0, mIconSize, mIconSize);
             }
-            mSuggestionText.setCompoundDrawablePadding(mMargin);
+            mSuggestionText.setCompoundDrawablePadding(mPadding);
             ApiCompatibilityUtils.setCompoundDrawablesRelative(
                     mSuggestionText, icon, null, null, null);
         }