Commit 831fd2f2 authored by Michael van Ouwerkerk's avatar Michael van Ouwerkerk Committed by Commit Bot

Apply Modern styling to site suggestion tiles.

Bug: 739664
Change-Id: I0f847bec2b9034206588aad4aedfc3703d49ee7c
Reviewed-on: https://chromium-review.googlesource.com/571001
Commit-Queue: Michael van Ouwerkerk <mvanouwerkerk@chromium.org>
Reviewed-by: default avatarBernhard Bauer <bauerb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#486752}
parent babd8603
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2017 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file. -->
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/default_primary_color" />
</shape>
...@@ -12,6 +12,16 @@ ...@@ -12,6 +12,16 @@
android:paddingStart="4dp" android:paddingStart="4dp"
android:paddingEnd="4dp" > android:paddingEnd="4dp" >
<!-- Icon background for the Modern layout. -->
<View
android:id="@+id/tile_view_icon_background"
android:layout_width="@dimen/tile_view_icon_size"
android:layout_height="@dimen/tile_view_icon_size"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/tile_view_icon_margin_top"
android:background="@drawable/tile_view_icon_background_modern"
android:visibility="gone" />
<!-- The main icon. --> <!-- The main icon. -->
<ImageView <ImageView
android:id="@+id/tile_view_icon" android:id="@+id/tile_view_icon"
......
...@@ -301,8 +301,10 @@ ...@@ -301,8 +301,10 @@
<dimen name="tile_view_width">80dp</dimen> <dimen name="tile_view_width">80dp</dimen>
<dimen name="tile_view_width_condensed">64dp</dimen> <dimen name="tile_view_width_condensed">64dp</dimen>
<dimen name="tile_view_icon_size">48dp</dimen> <dimen name="tile_view_icon_size">48dp</dimen>
<dimen name="tile_view_icon_size_modern">28dp</dimen>
<dimen name="tile_view_icon_margin_top">12dp</dimen> <dimen name="tile_view_icon_margin_top">12dp</dimen>
<dimen name="tile_view_icon_margin_top_condensed">8dp</dimen> <dimen name="tile_view_icon_margin_top_condensed">8dp</dimen>
<dimen name="tile_view_icon_margin_top_modern">22dp</dimen>
<dimen name="tile_view_offline_badge_size">24dp</dimen> <dimen name="tile_view_offline_badge_size">24dp</dimen>
<dimen name="tile_view_title_margin_top">66dp</dimen> <dimen name="tile_view_title_margin_top">66dp</dimen>
<dimen name="tile_view_title_margin_top_condensed">62dp</dimen> <dimen name="tile_view_title_margin_top_condensed">62dp</dimen>
......
...@@ -224,10 +224,18 @@ public class TileGroup implements MostVisitedSites.Observer { ...@@ -224,10 +224,18 @@ public class TileGroup implements MostVisitedSites.Observer {
mMinIconSize = Math.min(mDesiredIconSize, ICON_MIN_SIZE_PX); mMinIconSize = Math.min(mDesiredIconSize, ICON_MIN_SIZE_PX);
int desiredIconSizeDp = int desiredIconSizeDp =
Math.round(mDesiredIconSize / resources.getDisplayMetrics().density); Math.round(mDesiredIconSize / resources.getDisplayMetrics().density);
int cornerRadiusDp;
if (SuggestionsConfig.useModern()) {
cornerRadiusDp = desiredIconSizeDp / 2;
} else {
cornerRadiusDp = ICON_CORNER_RADIUS_DP;
}
int iconColor = int iconColor =
ApiCompatibilityUtils.getColor(resources, R.color.default_favicon_background_color); ApiCompatibilityUtils.getColor(resources, R.color.default_favicon_background_color);
mIconGenerator = new RoundedIconGenerator(mContext, desiredIconSizeDp, desiredIconSizeDp, mIconGenerator = new RoundedIconGenerator(mContext, desiredIconSizeDp, desiredIconSizeDp,
ICON_CORNER_RADIUS_DP, iconColor, ICON_TEXT_SIZE_DP); cornerRadiusDp, iconColor, ICON_TEXT_SIZE_DP);
if (ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_OFFLINE_PAGES_FEATURE_NAME)) { if (ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_OFFLINE_PAGES_FEATURE_NAME)) {
mOfflineModelObserver = new OfflineModelObserver(offlinePageBridge); mOfflineModelObserver = new OfflineModelObserver(offlinePageBridge);
......
...@@ -24,6 +24,7 @@ public class TileView extends FrameLayout { ...@@ -24,6 +24,7 @@ public class TileView extends FrameLayout {
private String mUrl; private String mUrl;
private TextView mTitleView; private TextView mTitleView;
private View mIconBackgroundView;
private ImageView mIconView; private ImageView mIconView;
private ImageView mBadgeView; private ImageView mBadgeView;
...@@ -39,6 +40,7 @@ public class TileView extends FrameLayout { ...@@ -39,6 +40,7 @@ public class TileView extends FrameLayout {
super.onFinishInflate(); super.onFinishInflate();
mTitleView = (TextView) findViewById(R.id.tile_view_title); mTitleView = (TextView) findViewById(R.id.tile_view_title);
mIconBackgroundView = (View) findViewById(R.id.tile_view_icon_background);
mIconView = (ImageView) findViewById(R.id.tile_view_icon); mIconView = (ImageView) findViewById(R.id.tile_view_icon);
mBadgeView = (ImageView) findViewById(R.id.offline_badge); mBadgeView = (ImageView) findViewById(R.id.offline_badge);
} }
...@@ -54,10 +56,18 @@ public class TileView extends FrameLayout { ...@@ -54,10 +56,18 @@ public class TileView extends FrameLayout {
mTitleView.setLines(titleLines); mTitleView.setLines(titleLines);
mUrl = tile.getUrl(); mUrl = tile.getUrl();
// TODO(mvanouwerkerk): Move this code to xml - https://crbug.com/695817. Resources res = getResources();
if (condensed) {
Resources res = getResources();
if (SuggestionsConfig.useModern()) {
mIconBackgroundView.setVisibility(View.VISIBLE);
LayoutParams iconParams = (LayoutParams) mIconView.getLayoutParams();
iconParams.width = res.getDimensionPixelOffset(R.dimen.tile_view_icon_size_modern);
iconParams.height = res.getDimensionPixelOffset(R.dimen.tile_view_icon_size_modern);
iconParams.setMargins(
0, res.getDimensionPixelOffset(R.dimen.tile_view_icon_margin_top_modern), 0, 0);
mIconView.setLayoutParams(iconParams);
} else if (condensed) {
// TODO(mvanouwerkerk): Move this code to xml - https://crbug.com/695817.
setPadding(0, 0, 0, 0); setPadding(0, 0, 0, 0);
LayoutParams tileParams = (LayoutParams) getLayoutParams(); LayoutParams tileParams = (LayoutParams) getLayoutParams();
tileParams.width = res.getDimensionPixelOffset(R.dimen.tile_view_width_condensed); tileParams.width = res.getDimensionPixelOffset(R.dimen.tile_view_width_condensed);
......
...@@ -57,7 +57,8 @@ import java.util.List; ...@@ -57,7 +57,8 @@ import java.util.List;
*/ */
@RunWith(LocalRobolectricTestRunner.class) @RunWith(LocalRobolectricTestRunner.class)
@Config(manifest = Config.NONE) @Config(manifest = Config.NONE)
@Features(@Features.Register(ChromeFeatureList.NTP_OFFLINE_PAGES_FEATURE_NAME)) @Features({@Features.Register(ChromeFeatureList.NTP_OFFLINE_PAGES_FEATURE_NAME),
@Features.Register(ChromeFeatureList.SUGGESTIONS_HOME_MODERN_LAYOUT)})
public class TileGroupTest { public class TileGroupTest {
private static final int MAX_TILES_TO_FETCH = 4; private static final int MAX_TILES_TO_FETCH = 4;
private static final int TILE_TITLE_LINES = 1; private static final int TILE_TITLE_LINES = 1;
......
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