| Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java
|
| index 1994220097dc7f42a9727d9eac12361fbee15b48..7dd1cc9f1c3adf05e363fd6adf3b38b4893f14c3 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java
|
| @@ -75,12 +75,6 @@ public class NewTabPageView
|
| */
|
| private static final String PARAM_NTP_TILE_TITLE_LINES = "ntp_tile_title_lines";
|
|
|
| - /**
|
| - * The maximum number of tiles to try and fit in a row. On smaller screens, there may not be
|
| - * enough space to fit all of them.
|
| - */
|
| - private static final int MAX_TILE_COLUMNS = 4;
|
| -
|
| private NewTabPageRecyclerView mRecyclerView;
|
|
|
| private NewTabPageLayout mNewTabPageLayout;
|
| @@ -230,6 +224,7 @@ public class NewTabPageView
|
|
|
| mTileGridLayout = (TileGridLayout) mNewTabPageLayout.findViewById(R.id.tile_grid_layout);
|
| mTileGridLayout.setMaxRows(getMaxTileRows(searchProviderHasLogo));
|
| + mTileGridLayout.setMaxColumns(getMaxTileColumns());
|
| mTileGroup = new TileGroup(
|
| mManager, mContextMenuManager, mTileGroupDelegate, /* observer = */ this);
|
|
|
| @@ -245,7 +240,7 @@ public class NewTabPageView
|
| setSearchProviderHasLogo(searchProviderHasLogo);
|
|
|
| mPendingLoadTasks++;
|
| - mTileGroup.startObserving(getMaxTileRows(searchProviderHasLogo) * MAX_TILE_COLUMNS);
|
| + mTileGroup.startObserving(getMaxTileRows(searchProviderHasLogo) * getMaxTileColumns());
|
|
|
| // Set up snippets
|
| NewTabPageAdapter newTabPageAdapter = new NewTabPageAdapter(mManager, mNewTabPageLayout,
|
| @@ -805,6 +800,19 @@ public class NewTabPageView
|
| ChromeFeatureList.NTP_CONDENSED_LAYOUT, PARAM_NTP_MAX_TILE_ROWS, defaultValue);
|
| }
|
|
|
| + /**
|
| + * Determines The maximum number of tiles to try and fit in a row. On smaller screens, there
|
| + * may not be enough space to fit all of them.
|
| + */
|
| + private int getMaxTileColumns() {
|
| + if (!mUiConfig.getCurrentDisplayStyle().isSmall()
|
| + && ChromeFeatureList.isEnabled(
|
| + ChromeFeatureList.NTP_CONDENSED_TILE_LAYOUT_FOR_LARGE_SCREENS)) {
|
| + return 5;
|
| + }
|
| + return 4;
|
| + }
|
| +
|
| private static int getTileTitleLines() {
|
| int defaultValue = 2;
|
| if (ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_CONDENSED_LAYOUT)) {
|
| @@ -814,6 +822,15 @@ public class NewTabPageView
|
| ChromeFeatureList.NTP_CONDENSED_LAYOUT, PARAM_NTP_TILE_TITLE_LINES, defaultValue);
|
| }
|
|
|
| + private boolean shouldUseCondensedTileLayout() {
|
| + if (mUiConfig.getCurrentDisplayStyle().isSmall()) {
|
| + return ChromeFeatureList.isEnabled(
|
| + ChromeFeatureList.NTP_CONDENSED_TILE_LAYOUT_FOR_SMALL_SCREENS);
|
| + }
|
| + return ChromeFeatureList.isEnabled(
|
| + ChromeFeatureList.NTP_CONDENSED_TILE_LAYOUT_FOR_LARGE_SCREENS);
|
| + }
|
| +
|
| @Override
|
| protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
|
| if (mNewTabPageLayout != null) {
|
| @@ -855,7 +872,8 @@ public class NewTabPageView
|
|
|
| @Override
|
| public void onTileDataChanged() {
|
| - mTileGroup.renderTileViews(mTileGridLayout, !mLoadHasCompleted, getTileTitleLines());
|
| + mTileGroup.renderTileViews(mTileGridLayout, !mLoadHasCompleted, getTileTitleLines(),
|
| + shouldUseCondensedTileLayout());
|
| mSnapshotTileGridChanged = true;
|
|
|
| // The page contents are initially hidden; otherwise they'll be drawn centered on the page
|
|
|