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);
}