Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1186)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/ntp/MostVisitedLayout.java

Issue 2673003003: Rename MostVisited ui bits to Tile(Grid). (Closed)
Patch Set: Rebase. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/MostVisitedLayout.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/MostVisitedLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/MostVisitedLayout.java
deleted file mode 100644
index 47c99aa95f4363766c8b92d5ba483e642927c156..0000000000000000000000000000000000000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/MostVisitedLayout.java
+++ /dev/null
@@ -1,154 +0,0 @@
-// Copyright 2015 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.
-
-package org.chromium.chrome.browser.ntp;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.graphics.drawable.Drawable;
-import android.text.TextUtils;
-import android.util.AttributeSet;
-import android.view.View;
-import android.widget.FrameLayout;
-
-import org.chromium.base.ApiCompatibilityUtils;
-import org.chromium.chrome.R;
-import org.chromium.chrome.browser.util.MathUtils;
-
-/**
- * A layout that arranges most visited items in a grid.
- */
-public class MostVisitedLayout extends FrameLayout {
-
- private static final int MAX_COLUMNS = 4;
-
- private int mVerticalSpacing;
- private int mExtraVerticalSpacing;
- private int mMinHorizontalSpacing;
- private int mMaxHorizontalSpacing;
- private int mMaxWidth;
- private int mMaxRows;
-
- /**
- * @param context The view context in which this item will be shown.
- * @param attrs The attributes of the XML tag that is inflating the view.
- */
- public MostVisitedLayout(Context context, AttributeSet attrs) {
- super(context, attrs);
-
- Resources res = getResources();
- mVerticalSpacing = res.getDimensionPixelOffset(R.dimen.most_visited_vertical_spacing);
- mMinHorizontalSpacing = res.getDimensionPixelOffset(
- R.dimen.most_visited_min_horizontal_spacing);
- mMaxHorizontalSpacing = res.getDimensionPixelOffset(
- R.dimen.most_visited_max_horizontal_spacing);
- mMaxWidth = res.getDimensionPixelOffset(R.dimen.most_visited_layout_max_width);
- }
-
- /**
- * Sets the maximum number of rows to display. Any items that don't fit within these rows will
- * be hidden.
- */
- public void setMaxRows(int rows) {
- mMaxRows = rows;
- }
-
- /**
- * Sets the extra vertical spacing that must be used. It will be distributed evenly above each
- * row.
- */
- public void setExtraVerticalSpacing(int spacing) {
- if (mExtraVerticalSpacing == spacing) {
- return;
- }
- mExtraVerticalSpacing = spacing;
-
- // Clear the measure cache for this view and make sure it will be remeasured.
- forceLayout();
- }
-
- /**
- * Sets a new icon on the child view with a matching URL.
- * @param url The site URL of the child tile view.
- * @param icon The icon to set.
- */
- public void updateIconView(String url, Drawable icon) {
- int childCount = getChildCount();
- for (int i = 0; i < childCount; i++) {
- MostVisitedItemView tileView = (MostVisitedItemView) getChildAt(i);
- if (TextUtils.equals(url, tileView.getUrl())) {
- tileView.setIcon(icon);
- break;
- }
- }
- }
-
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- int totalWidth = resolveSize(mMaxWidth, widthMeasureSpec);
- int childCount = getChildCount();
- if (childCount == 0) {
- setMeasuredDimension(totalWidth, resolveSize(0, heightMeasureSpec));
- return;
- }
-
- // Measure the children.
- for (int i = 0; i < childCount; i++) {
- measureChild(getChildAt(i), MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
- }
-
- // Determine the number of columns that will fit.
- int gridWidth = totalWidth - ApiCompatibilityUtils.getPaddingStart(this)
- - ApiCompatibilityUtils.getPaddingEnd(this);
- int childHeight = getChildAt(0).getMeasuredHeight();
- int childWidth = getChildAt(0).getMeasuredWidth();
- int numColumns = MathUtils.clamp(
- (gridWidth + mMinHorizontalSpacing) / (childWidth + mMinHorizontalSpacing),
- 1, MAX_COLUMNS);
-
- // Ensure column spacing isn't greater than mMaxHorizontalSpacing.
- int gridWidthMinusColumns = Math.max(0, gridWidth - numColumns * childWidth);
- int gridSidePadding = gridWidthMinusColumns - mMaxHorizontalSpacing * (numColumns - 1);
-
- int gridStart = 0;
- float horizontalSpacing;
- if (gridSidePadding > 0) {
- horizontalSpacing = mMaxHorizontalSpacing;
- gridStart = gridSidePadding / 2;
- } else {
- horizontalSpacing = (float) gridWidthMinusColumns / Math.max(1, numColumns - 1);
- }
-
- // Limit the number of rows to mMaxRows.
- int visibleChildCount = Math.min(childCount, mMaxRows * numColumns);
-
- // Arrange the visible children in a grid.
- int numRows = (visibleChildCount + numColumns - 1) / numColumns;
- int paddingTop = getPaddingTop();
- boolean isRtl = ApiCompatibilityUtils.isLayoutRtl(this);
- for (int i = 0; i < visibleChildCount; i++) {
- View child = getChildAt(i);
- child.setVisibility(View.VISIBLE);
- int row = i / numColumns;
- int column = i % numColumns;
- int verticalOffset = Math.round(mExtraVerticalSpacing * ((float) (row + 1) / numRows));
- int childTop = row * (childHeight + mVerticalSpacing) + verticalOffset;
- int childStart = gridStart + Math.round(column * (childWidth + horizontalSpacing));
- MarginLayoutParams layoutParams = (MarginLayoutParams) child.getLayoutParams();
- layoutParams.setMargins(isRtl ? 0 : childStart, childTop, isRtl ? childStart : 0, 0);
- child.setLayoutParams(layoutParams);
- }
-
- // Hide any extra children in case there are more than needed for the maximum number of
- // rows.
- for (int i = visibleChildCount; i < childCount; i++) {
- getChildAt(i).setVisibility(View.GONE);
- }
-
- int totalHeight = paddingTop + getPaddingBottom() + numRows * childHeight
- + (numRows - 1) * mVerticalSpacing + mExtraVerticalSpacing;
-
- setMeasuredDimension(totalWidth, resolveSize(totalHeight, heightMeasureSpec));
- }
-}

Powered by Google App Engine
This is Rietveld 408576698