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 @@
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>
......@@ -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"
......
......@@ -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"/>
......@@ -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
......@@ -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
......@@ -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>
......
......@@ -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>
......
......@@ -7,11 +7,10 @@ package org.chromium.chrome.browser.autofill.keyboard_accessory;
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 @@ class KeyboardAccessoryView extends LinearLayout {
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 @@ class KeyboardAccessoryView extends LinearLayout {
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));
}
}
......
......@@ -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 @@ class PasswordAccessorySheetViewBinder {
*/
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 @@ class PasswordAccessorySheetViewBinder {
@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);
}
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) {
......@@ -157,7 +165,7 @@ class PasswordAccessorySheetViewBinder {
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);
}
......
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