Commit 04b3700b authored by Ioana Pandele's avatar Ioana Pandele Committed by Commit Bot

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: default avatarTheresa <twellington@chromium.org>
Reviewed-by: default avatarFriedrich Horschig [CEST] <fhorschig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#585472}
parent cdb52dbe
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
android:layout_height="@dimen/keyboard_accessory_height" android:layout_height="@dimen/keyboard_accessory_height"
android:layout_width="match_parent" android:layout_width="match_parent"
android:paddingEnd="0dp" android:paddingEnd="0dp"
android:paddingStart="@dimen/keyboard_accessory_padding"
android:clickable="true" android:clickable="true"
android:focusable="true"> android:focusable="true">
...@@ -25,11 +24,13 @@ ...@@ -25,11 +24,13 @@
android:id="@+id/tabs" android:id="@+id/tabs"
app:tabIndicatorHeight="0dp" app:tabIndicatorHeight="0dp"
android:layout_width="wrap_content" 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.support.v7.widget.RecyclerView
android:id="@+id/actions_view" android:id="@+id/actions_view"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" /> android:layout_height="match_parent"/>
</org.chromium.chrome.browser.autofill.keyboard_accessory.KeyboardAccessoryView> </org.chromium.chrome.browser.autofill.keyboard_accessory.KeyboardAccessoryView>
...@@ -12,8 +12,8 @@ ...@@ -12,8 +12,8 @@
android:minHeight="0dp" android:minHeight="0dp"
android:minWidth="0dp" android:minWidth="0dp"
android:paddingBottom="0dp" android:paddingBottom="0dp"
android:paddingEnd="@dimen/keyboard_accessory_half_padding" android:paddingEnd="@dimen/keyboard_accessory_action_padding"
android:paddingStart="@dimen/keyboard_accessory_half_padding" android:paddingStart="@dimen/keyboard_accessory_action_padding"
android:paddingTop="0dp" android:paddingTop="0dp"
android:layout_marginBottom="@dimen/keyboard_accessory_half_padding" android:layout_marginBottom="@dimen/keyboard_accessory_half_padding"
android:layout_marginTop="@dimen/keyboard_accessory_half_padding" android:layout_marginTop="@dimen/keyboard_accessory_half_padding"
......
...@@ -11,5 +11,6 @@ ...@@ -11,5 +11,6 @@
android:paddingEnd="16dp" android:paddingEnd="16dp"
android:fillViewport="true" android:fillViewport="true"
android:layout_height="48dp" android:layout_height="48dp"
android:gravity="center_vertical"
android:textAppearance="@style/BlackHint1" android:textAppearance="@style/BlackHint1"
android:layout_width="match_parent"/> android:layout_width="match_parent"/>
...@@ -12,4 +12,5 @@ ...@@ -12,4 +12,5 @@
android:fillViewport="true" android:fillViewport="true"
android:layout_height="48dp" android:layout_height="48dp"
android:textAppearance="@style/BlackTitle1" android:textAppearance="@style/BlackTitle1"
android:layout_width="match_parent"/> android:layout_width="match_parent"
\ No newline at end of file android:background="?android:attr/selectableItemBackground"/>
\ No newline at end of file
...@@ -6,10 +6,8 @@ ...@@ -6,10 +6,8 @@
<TextView <TextView
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/suggestion_text" 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:gravity="center_vertical|start"
android:fillViewport="true" android:fillViewport="true"
android:layout_height="@dimen/keyboard_accessory_suggestion_height" android:layout_height="@dimen/keyboard_accessory_suggestion_height"
android:textAppearance="@style/BlackTitle1" android:layout_width="match_parent"
android:layout_width="match_parent"/> android:textAppearance="@style/BlackTitle1"/>
\ No newline at end of file \ No newline at end of file
...@@ -220,12 +220,21 @@ ...@@ -220,12 +220,21 @@
<item name="android:layout_marginTop">2dp</item> <item name="android:layout_marginTop">2dp</item>
<item name="android:background">@color/google_grey_600</item> <item name="android:background">@color/google_grey_600</item>
</style> </style>
<!-- Dividers -->
<style name="Divider"> <style name="Divider">
<item name="android:layout_width">match_parent</item> <item name="android:layout_width">match_parent</item>
<item name="android:layout_height">@dimen/divider_height</item> <item name="android:layout_height">@dimen/divider_height</item>
<item name="android:background">@color/google_grey_300</item> <item name="android:background">@color/google_grey_300</item>
<item name="android:importantForAccessibility">no</item> <item name="android:importantForAccessibility">no</item>
</style> </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"> <style name="ThemeWithActionBarBase" parent="Theme.AppCompat.Light">
<item name="android:windowBackground">@drawable/action_bar_activity_bg</item> <item name="android:windowBackground">@drawable/action_bar_activity_bg</item>
......
...@@ -125,11 +125,12 @@ ...@@ -125,11 +125,12 @@
<!-- Autofill keyboard accessory dimensions --> <!-- Autofill keyboard accessory dimensions -->
<dimen name="keyboard_accessory_action_height">36dp</dimen> <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_half_padding">6dp</dimen>
<dimen name="keyboard_accessory_height">48dp</dimen> <dimen name="keyboard_accessory_height">48dp</dimen>
<dimen name="keyboard_accessory_padding">6dp</dimen> <dimen name="keyboard_accessory_padding">6dp</dimen>
<dimen name="keyboard_accessory_sheet_height">330dp</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_height">48dp</dimen>
<dimen name="keyboard_accessory_suggestion_icon_size">20dp</dimen> <dimen name="keyboard_accessory_suggestion_icon_size">20dp</dimen>
......
...@@ -7,11 +7,10 @@ package org.chromium.chrome.browser.autofill.keyboard_accessory; ...@@ -7,11 +7,10 @@ package org.chromium.chrome.browser.autofill.keyboard_accessory;
import static org.chromium.ui.base.LocalizationUtils.isLayoutRtl; import static org.chromium.ui.base.LocalizationUtils.isLayoutRtl;
import android.content.Context; import android.content.Context;
import android.graphics.Color;
import android.graphics.PorterDuff;
import android.graphics.Rect; import android.graphics.Rect;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.support.design.widget.TabLayout; import android.support.design.widget.TabLayout;
import android.support.v4.graphics.drawable.DrawableCompat;
import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager;
import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
...@@ -94,6 +93,7 @@ class KeyboardAccessoryView extends LinearLayout { ...@@ -94,6 +93,7 @@ class KeyboardAccessoryView extends LinearLayout {
if (mTabLayout == null) return; // Inflation not done yet. Will be invoked again afterwards. if (mTabLayout == null) return; // Inflation not done yet. Will be invoked again afterwards.
TabLayout.Tab tab = mTabLayout.newTab(); TabLayout.Tab tab = mTabLayout.newTab();
tab.setIcon(icon.mutate()); // mutate() needed to change the active tint. 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); tab.setContentDescription(contentDescription);
mTabLayout.addTab(tab, position, false); mTabLayout.addTab(tab, position, false);
} }
...@@ -129,11 +129,10 @@ class KeyboardAccessoryView extends LinearLayout { ...@@ -129,11 +129,10 @@ class KeyboardAccessoryView extends LinearLayout {
for (int i = mTabLayout.getTabCount() - 1; i >= 0; i--) { for (int i = mTabLayout.getTabCount() - 1; i >= 0; i--) {
TabLayout.Tab t = mTabLayout.getTabAt(i); TabLayout.Tab t = mTabLayout.getTabAt(i);
if (t == null || t.getIcon() == null) continue; if (t == null || t.getIcon() == null) continue;
if (activeTab == null || i != activeTab) { int activeStateColor = (activeTab == null || i != activeTab)
t.getIcon().clearColorFilter(); ? R.color.default_icon_color
} else { : R.color.default_icon_color_blue;
t.getIcon().setColorFilter(Color.BLUE, PorterDuff.Mode.SRC_ATOP); DrawableCompat.setTint(t.getIcon(), getResources().getColor(activeStateColor));
}
} }
} }
......
...@@ -4,11 +4,11 @@ ...@@ -4,11 +4,11 @@
package org.chromium.chrome.browser.autofill.keyboard_accessory; package org.chromium.chrome.browser.autofill.keyboard_accessory;
import android.content.res.TypedArray;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.support.v4.view.MarginLayoutParamsCompat;
import android.support.v7.content.res.AppCompatResources; import android.support.v7.content.res.AppCompatResources;
import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
...@@ -111,14 +111,14 @@ class PasswordAccessorySheetViewBinder { ...@@ -111,14 +111,14 @@ class PasswordAccessorySheetViewBinder {
*/ */
static class IconTextViewHolder extends TextViewHolder { static class IconTextViewHolder extends TextViewHolder {
private final TextView mSuggestionText; private final TextView mSuggestionText;
private final int mMargin; private final int mPadding;
private final int mIconSize; private final int mIconSize;
IconTextViewHolder(View itemView) { IconTextViewHolder(View itemView) {
super(itemView); super(itemView);
mSuggestionText = itemView.findViewById(R.id.suggestion_text); mSuggestionText = itemView.findViewById(R.id.suggestion_text);
mMargin = itemView.getContext().getResources().getDimensionPixelSize( mPadding = itemView.getContext().getResources().getDimensionPixelSize(
R.dimen.keyboard_accessory_suggestion_margin); R.dimen.keyboard_accessory_suggestion_padding);
mIconSize = itemView.getContext().getResources().getDimensionPixelSize( mIconSize = itemView.getContext().getResources().getDimensionPixelSize(
R.dimen.keyboard_accessory_suggestion_icon_size); R.dimen.keyboard_accessory_suggestion_icon_size);
} }
...@@ -131,19 +131,27 @@ class PasswordAccessorySheetViewBinder { ...@@ -131,19 +131,27 @@ class PasswordAccessorySheetViewBinder {
@Override @Override
protected void bind(Item item) { protected void bind(Item item) {
super.bind(item); super.bind(item);
ViewGroup.MarginLayoutParams params =
new ViewGroup.MarginLayoutParams(mSuggestionText.getLayoutParams());
MarginLayoutParamsCompat.setMarginEnd(params, mMargin);
if (!item.isPassword()) { if (!item.isPassword()) {
setIconForBitmap(null); // Set the default icon, then try to get a better one. setIconForBitmap(null); // Set the default icon, then try to get a better one.
item.fetchFavicon(this::setIconForBitmap); item.fetchFavicon(this::setIconForBitmap);
MarginLayoutParamsCompat.setMarginStart(params, mMargin); mSuggestionText.setPadding(mPadding, 0, mPadding, 0);
} else { } else {
ApiCompatibilityUtils.setCompoundDrawablesRelative( ApiCompatibilityUtils.setCompoundDrawablesRelative(
mSuggestionText, null, null, null, null); mSuggestionText, null, null, null, null);
MarginLayoutParamsCompat.setMarginStart(params, 2 * mMargin + mIconSize); mSuggestionText.setPadding(2 * mPadding + mIconSize, 0, mPadding, 0);
}
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);
} }
mSuggestionText.setLayoutParams(params);
} }
private void setIconForBitmap(@Nullable Bitmap favicon) { private void setIconForBitmap(@Nullable Bitmap favicon) {
...@@ -157,7 +165,7 @@ class PasswordAccessorySheetViewBinder { ...@@ -157,7 +165,7 @@ class PasswordAccessorySheetViewBinder {
if (icon != null) { // AppCompatResources.getDrawable is @Nullable. if (icon != null) { // AppCompatResources.getDrawable is @Nullable.
icon.setBounds(0, 0, mIconSize, mIconSize); icon.setBounds(0, 0, mIconSize, mIconSize);
} }
mSuggestionText.setCompoundDrawablePadding(mMargin); mSuggestionText.setCompoundDrawablePadding(mPadding);
ApiCompatibilityUtils.setCompoundDrawablesRelative( ApiCompatibilityUtils.setCompoundDrawablesRelative(
mSuggestionText, icon, null, null, null); mSuggestionText, icon, null, null, null);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment