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 | 23 |
24 import org.chromium.base.ApiCompatibilityUtils; | 24 import org.chromium.base.ApiCompatibilityUtils; |
25 import org.chromium.base.Callback; | 25 import org.chromium.base.Callback; |
26 import org.chromium.base.Log; | 26 import org.chromium.base.Log; |
27 import org.chromium.base.VisibleForTesting; | 27 import org.chromium.base.VisibleForTesting; |
28 import org.chromium.chrome.R; | 28 import org.chromium.chrome.R; |
29 import org.chromium.chrome.browser.ChromeFeatureList; | 29 import org.chromium.chrome.browser.ChromeFeatureList; |
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.MostVisitedTileType; | |
34 import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; | 33 import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; |
35 import org.chromium.chrome.browser.widget.RoundedIconGenerator; | 34 import org.chromium.chrome.browser.widget.RoundedIconGenerator; |
36 import org.chromium.ui.mojom.WindowOpenDisposition; | 35 import org.chromium.ui.mojom.WindowOpenDisposition; |
37 | 36 |
38 import java.util.ArrayList; | 37 import java.util.ArrayList; |
39 import java.util.Arrays; | 38 import java.util.Arrays; |
40 import java.util.HashMap; | 39 import java.util.HashMap; |
41 import java.util.HashSet; | 40 import java.util.HashSet; |
42 import java.util.List; | 41 import java.util.List; |
43 import java.util.Map; | 42 import java.util.Map; |
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
401 @Nullable Bitmap icon, int fallbackColor, boolean isFallbackColo
rDefault) { | 400 @Nullable Bitmap icon, int fallbackColor, boolean isFallbackColo
rDefault) { |
402 if (mTrackLoadTask) mObserver.onLoadTaskCompleted(); | 401 if (mTrackLoadTask) mObserver.onLoadTaskCompleted(); |
403 | 402 |
404 Tile tile = getTile(mUrl); | 403 Tile tile = getTile(mUrl); |
405 if (tile == null) return; // The tile might have been removed. | 404 if (tile == null) return; // The tile might have been removed. |
406 | 405 |
407 if (icon == null) { | 406 if (icon == null) { |
408 mIconGenerator.setBackgroundColor(fallbackColor); | 407 mIconGenerator.setBackgroundColor(fallbackColor); |
409 icon = mIconGenerator.generateIconForUrl(mUrl); | 408 icon = mIconGenerator.generateIconForUrl(mUrl); |
410 tile.setIcon(new BitmapDrawable(mContext.getResources(), icon)); | 409 tile.setIcon(new BitmapDrawable(mContext.getResources(), icon)); |
411 tile.setType(isFallbackColorDefault ? MostVisitedTileType.ICON_D
EFAULT | 410 tile.setType(isFallbackColorDefault ? TileVisualType.ICON_DEFAUL
T |
412 : MostVisitedTileType.ICON_C
OLOR); | 411 : TileVisualType.ICON_COLOR)
; |
413 } else { | 412 } else { |
414 RoundedBitmapDrawable roundedIcon = | 413 RoundedBitmapDrawable roundedIcon = |
415 RoundedBitmapDrawableFactory.create(mContext.getResource
s(), icon); | 414 RoundedBitmapDrawableFactory.create(mContext.getResource
s(), icon); |
416 int cornerRadius = Math.round(ICON_CORNER_RADIUS_DP | 415 int cornerRadius = Math.round(ICON_CORNER_RADIUS_DP |
417 * mContext.getResources().getDisplayMetrics().density *
icon.getWidth() | 416 * mContext.getResources().getDisplayMetrics().density *
icon.getWidth() |
418 / mDesiredIconSize); | 417 / mDesiredIconSize); |
419 roundedIcon.setCornerRadius(cornerRadius); | 418 roundedIcon.setCornerRadius(cornerRadius); |
420 roundedIcon.setAntiAlias(true); | 419 roundedIcon.setAntiAlias(true); |
421 roundedIcon.setFilterBitmap(true); | 420 roundedIcon.setFilterBitmap(true); |
422 | 421 |
423 tile.setIcon(roundedIcon); | 422 tile.setIcon(roundedIcon); |
424 tile.setType(MostVisitedTileType.ICON_REAL); | 423 tile.setType(TileVisualType.ICON_REAL); |
425 } | 424 } |
426 | 425 |
427 mObserver.onTileIconChanged(tile); | 426 mObserver.onTileIconChanged(tile); |
428 } | 427 } |
429 } | 428 } |
430 | 429 |
431 private class TileInteractionDelegate | 430 private class TileInteractionDelegate |
432 implements ContextMenuManager.Delegate, OnClickListener, OnCreateCon
textMenuListener { | 431 implements ContextMenuManager.Delegate, OnClickListener, OnCreateCon
textMenuListener { |
433 private final String mUrl; | 432 private final String mUrl; |
434 | 433 |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
508 if (oldOfflineAvailable == tile.isOfflineAvailable()) return; | 507 if (oldOfflineAvailable == tile.isOfflineAvailable()) return; |
509 mObserver.onTileOfflineBadgeVisibilityChanged(tile); | 508 mObserver.onTileOfflineBadgeVisibilityChanged(tile); |
510 } | 509 } |
511 | 510 |
512 @Override | 511 @Override |
513 public Iterable<Tile> getOfflinableSuggestions() { | 512 public Iterable<Tile> getOfflinableSuggestions() { |
514 return Arrays.asList(mTiles); | 513 return Arrays.asList(mTiles); |
515 } | 514 } |
516 } | 515 } |
517 } | 516 } |
OLD | NEW |