| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.chrome.browser.suggestions; | 5 package org.chromium.chrome.browser.suggestions; |
| 6 | 6 |
| 7 import android.content.Context; | 7 import android.content.Context; |
| 8 import android.content.res.Resources; | 8 import android.content.res.Resources; |
| 9 import android.graphics.Bitmap; | 9 import android.graphics.Bitmap; |
| 10 import android.graphics.BitmapFactory; | 10 import android.graphics.BitmapFactory; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 import android.view.ViewGroup; | 23 import android.view.ViewGroup; |
| 24 | 24 |
| 25 import org.chromium.base.ApiCompatibilityUtils; | 25 import org.chromium.base.ApiCompatibilityUtils; |
| 26 import org.chromium.base.Callback; | 26 import org.chromium.base.Callback; |
| 27 import org.chromium.base.ContextUtils; | 27 import org.chromium.base.ContextUtils; |
| 28 import org.chromium.base.Log; | 28 import org.chromium.base.Log; |
| 29 import org.chromium.chrome.R; | 29 import org.chromium.chrome.R; |
| 30 import org.chromium.chrome.browser.favicon.LargeIconBridge.LargeIconCallback; | 30 import org.chromium.chrome.browser.favicon.LargeIconBridge.LargeIconCallback; |
| 31 import org.chromium.chrome.browser.ntp.ContextMenuManager; | 31 import org.chromium.chrome.browser.ntp.ContextMenuManager; |
| 32 import org.chromium.chrome.browser.ntp.ContextMenuManager.ContextMenuItemId; | 32 import org.chromium.chrome.browser.ntp.ContextMenuManager.ContextMenuItemId; |
| 33 import org.chromium.chrome.browser.ntp.MostVisitedItemView; | |
| 34 import org.chromium.chrome.browser.ntp.MostVisitedTileType; | 33 import org.chromium.chrome.browser.ntp.MostVisitedTileType; |
| 35 import org.chromium.chrome.browser.ntp.TitleUtil; | 34 import org.chromium.chrome.browser.ntp.TitleUtil; |
| 36 import org.chromium.chrome.browser.profiles.MostVisitedSites.MostVisitedURLsObse
rver; | 35 import org.chromium.chrome.browser.profiles.MostVisitedSites.MostVisitedURLsObse
rver; |
| 37 import org.chromium.chrome.browser.widget.RoundedIconGenerator; | 36 import org.chromium.chrome.browser.widget.RoundedIconGenerator; |
| 38 import org.chromium.ui.mojom.WindowOpenDisposition; | 37 import org.chromium.ui.mojom.WindowOpenDisposition; |
| 39 | 38 |
| 40 import java.util.Arrays; | 39 import java.util.Arrays; |
| 41 import java.util.HashSet; | 40 import java.util.HashSet; |
| 42 import java.util.Set; | 41 import java.util.Set; |
| 43 | 42 |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 | 129 |
| 131 public TileGroup(SuggestionsUiDelegate uiDelegate, ContextMenuManager contex
tMenuManager, | 130 public TileGroup(SuggestionsUiDelegate uiDelegate, ContextMenuManager contex
tMenuManager, |
| 132 Delegate tileGroupDelegate, Observer observer) { | 131 Delegate tileGroupDelegate, Observer observer) { |
| 133 mContext = ContextUtils.getApplicationContext(); | 132 mContext = ContextUtils.getApplicationContext(); |
| 134 mUiDelegate = uiDelegate; | 133 mUiDelegate = uiDelegate; |
| 135 mContextMenuManager = contextMenuManager; | 134 mContextMenuManager = contextMenuManager; |
| 136 mTileGroupDelegate = tileGroupDelegate; | 135 mTileGroupDelegate = tileGroupDelegate; |
| 137 mObserver = observer; | 136 mObserver = observer; |
| 138 | 137 |
| 139 Resources resources = mContext.getResources(); | 138 Resources resources = mContext.getResources(); |
| 140 mDesiredIconSize = resources.getDimensionPixelSize(R.dimen.most_visited_
icon_size); | 139 mDesiredIconSize = resources.getDimensionPixelSize(R.dimen.tile_view_ico
n_size); |
| 141 // On ldpi devices, mDesiredIconSize could be even smaller than ICON_MIN
_SIZE_PX. | 140 // On ldpi devices, mDesiredIconSize could be even smaller than ICON_MIN
_SIZE_PX. |
| 142 mMinIconSize = Math.min(mDesiredIconSize, ICON_MIN_SIZE_PX); | 141 mMinIconSize = Math.min(mDesiredIconSize, ICON_MIN_SIZE_PX); |
| 143 int desiredIconSizeDp = | 142 int desiredIconSizeDp = |
| 144 Math.round(mDesiredIconSize / resources.getDisplayMetrics().dens
ity); | 143 Math.round(mDesiredIconSize / resources.getDisplayMetrics().dens
ity); |
| 145 int iconColor = | 144 int iconColor = |
| 146 ApiCompatibilityUtils.getColor(resources, R.color.default_favico
n_background_color); | 145 ApiCompatibilityUtils.getColor(resources, R.color.default_favico
n_background_color); |
| 147 mIconGenerator = new RoundedIconGenerator(mContext, desiredIconSizeDp, d
esiredIconSizeDp, | 146 mIconGenerator = new RoundedIconGenerator(mContext, desiredIconSizeDp, d
esiredIconSizeDp, |
| 148 ICON_CORNER_RADIUS_DP, iconColor, ICON_TEXT_SIZE_DP); | 147 ICON_CORNER_RADIUS_DP, iconColor, ICON_TEXT_SIZE_DP); |
| 149 } | 148 } |
| 150 | 149 |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 293 | 292 |
| 294 if (oldTileCount != mTiles.length) mObserver.onTileCountChanged(); | 293 if (oldTileCount != mTiles.length) mObserver.onTileCountChanged(); |
| 295 if (isInitialLoad) { | 294 if (isInitialLoad) { |
| 296 mObserver.onLoadTaskCompleted(); | 295 mObserver.onLoadTaskCompleted(); |
| 297 mObserver.onInitialTileDataLoaded(); | 296 mObserver.onInitialTileDataLoaded(); |
| 298 } | 297 } |
| 299 mObserver.onTileDataChanged(); | 298 mObserver.onTileDataChanged(); |
| 300 } | 299 } |
| 301 | 300 |
| 302 private View buildTileView(Tile tile, ViewGroup parentView, boolean trackLoa
dTask) { | 301 private View buildTileView(Tile tile, ViewGroup parentView, boolean trackLoa
dTask) { |
| 303 MostVisitedItemView view = | 302 TileView view = (TileView) LayoutInflater.from(parentView.getContext()) |
| 304 (MostVisitedItemView) LayoutInflater.from(parentView.getContext(
)) | 303 .inflate(R.layout.tile_view, parentView, false); |
| 305 .inflate(R.layout.most_visited_item, parentView, false); | |
| 306 view.setTitle(TitleUtil.getTitleForDisplay(tile.getTitle(), tile.getUrl(
))); | 304 view.setTitle(TitleUtil.getTitleForDisplay(tile.getTitle(), tile.getUrl(
))); |
| 307 view.setOfflineAvailable(tile.isOfflineAvailable()); | 305 view.setOfflineAvailable(tile.isOfflineAvailable()); |
| 308 view.setIcon(tile.getIcon()); | 306 view.setIcon(tile.getIcon()); |
| 309 view.setUrl(tile.getUrl()); | 307 view.setUrl(tile.getUrl()); |
| 310 | 308 |
| 311 LargeIconCallback iconCallback = new LargeIconCallbackImpl(tile, trackLo
adTask); | 309 LargeIconCallback iconCallback = new LargeIconCallbackImpl(tile, trackLo
adTask); |
| 312 if (trackLoadTask) mObserver.onLoadTaskAdded(); | 310 if (trackLoadTask) mObserver.onLoadTaskAdded(); |
| 313 if (!loadWhitelistIcon(tile, iconCallback)) { | 311 if (!loadWhitelistIcon(tile, iconCallback)) { |
| 314 mUiDelegate.getLargeIconForUrl(tile.getUrl(), mMinIconSize, iconCall
back); | 312 mUiDelegate.getLargeIconForUrl(tile.getUrl(), mMinIconSize, iconCall
back); |
| 315 } | 313 } |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 358 roundedIcon.setAntiAlias(true); | 356 roundedIcon.setAntiAlias(true); |
| 359 roundedIcon.setFilterBitmap(true); | 357 roundedIcon.setFilterBitmap(true); |
| 360 mTile.setIcon(roundedIcon); | 358 mTile.setIcon(roundedIcon); |
| 361 mTile.setTileType(MostVisitedTileType.ICON_REAL); | 359 mTile.setTileType(MostVisitedTileType.ICON_REAL); |
| 362 } | 360 } |
| 363 mObserver.onTileIconChanged(mTile); | 361 mObserver.onTileIconChanged(mTile); |
| 364 if (mTrackLoadTask) mObserver.onLoadTaskCompleted(); | 362 if (mTrackLoadTask) mObserver.onLoadTaskCompleted(); |
| 365 } | 363 } |
| 366 } | 364 } |
| 367 } | 365 } |
| OLD | NEW |