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 |