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

Unified Diff: chrome/android/java_staging/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkItem.java

Issue 1202713002: Replace enhanced bookmarks salient images with favicons (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Line wraps in EnhanacedBookmarkItem.java Created 5 years, 6 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_staging/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkItem.java
diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkItem.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkItem.java
index 6e2adaa00e2a1e5d3db31a7e28b3dceec9ca37db..f00aa65cecb5efddad18edae7aa3e9e707bed148 100644
--- a/chrome/android/java_staging/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkItem.java
+++ b/chrome/android/java_staging/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkItem.java
@@ -5,8 +5,11 @@
package org.chromium.chrome.browser.enhancedbookmarks;
import android.content.Context;
+import android.graphics.Bitmap;
import android.graphics.PorterDuff;
-import android.net.Uri;
+import android.graphics.drawable.BitmapDrawable;
+import android.support.v4.graphics.drawable.RoundedBitmapDrawable;
+import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
@@ -14,6 +17,7 @@ import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.FrameLayout;
+import android.widget.ImageView;
import android.widget.ListPopupWindow;
import android.widget.TextView;
@@ -22,6 +26,10 @@ import org.chromium.chrome.browser.BookmarksBridge.BookmarkItem;
import org.chromium.chrome.browser.enhanced_bookmarks.LaunchLocation;
import org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkItemsAdapter.BookmarkGrid;
import org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkManager.UIState;
+import org.chromium.chrome.browser.favicon.LargeIconBridge;
+import org.chromium.chrome.browser.favicon.LargeIconBridge.LargeIconCallback;
+import org.chromium.chrome.browser.profiles.Profile;
+import org.chromium.chrome.browser.widget.RoundedIconGenerator;
import org.chromium.chrome.browser.widget.TintedImageButton;
import org.chromium.components.bookmarks.BookmarkId;
import org.chromium.components.bookmarks.BookmarkType;
@@ -32,14 +40,19 @@ import java.util.List;
* A view that shows a bookmark's title, screenshot, URL, etc, shown in the enhanced bookmarks UI.
*/
public class EnhancedBookmarkItem extends FrameLayout implements EnhancedBookmarkUIObserver,
- BookmarkGrid {
+ BookmarkGrid, LargeIconCallback {
- private EnhancedBookmarkSalientImageView mSalientImageView;
+ private ImageView mIconImageView;
private TintedImageButton mMoreIcon;
private TextView mFolderTitleView;
private TextView mTitleView;
- private TextView mUrlView;
private EnhancedBookmarkItemHighlightView mHighlightView;
+ private String mUrl;
+ private RoundedIconGenerator mIconGenerator;
+ private LargeIconBridge mLargeIconBridge;
+ private int mMinIconSize;
+ private int mDisplayedIconSize;
+ private int mCornerRadius;
private BookmarkId mBookmarkId;
private EnhancedBookmarkDelegate mDelegate;
@@ -51,18 +64,29 @@ public class EnhancedBookmarkItem extends FrameLayout implements EnhancedBookmar
*/
public EnhancedBookmarkItem(Context context, AttributeSet attrs) {
super(context, attrs);
+ mCornerRadius = getResources().getDimensionPixelSize(
+ R.dimen.enhanced_bookmark_item_corner_radius);
+ mMinIconSize = (int) getResources().getDimension(
+ R.dimen.enhanced_bookmark_item_min_icon_size);
+ mDisplayedIconSize = getResources().getDimensionPixelSize(
+ R.dimen.enhanced_bookmark_item_icon_size);
+ int textSize = getResources().getDimensionPixelSize(
+ R.dimen.enhnaced_bookmark_item_icon_text_size);
+ int iconColor = getResources().getColor(R.color.enhanced_bookmark_icon_background_color);
+ mIconGenerator = new RoundedIconGenerator(mDisplayedIconSize , mDisplayedIconSize,
+ mCornerRadius, iconColor, textSize);
+ mLargeIconBridge = new LargeIconBridge();
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
- mSalientImageView = (EnhancedBookmarkSalientImageView) findViewById(R.id.bookamrk_image);
+ mIconImageView = (ImageView) findViewById(R.id.bookmark_image);
mMoreIcon = (TintedImageButton) findViewById(R.id.more);
mMoreIcon.setOnClickListener(this);
mMoreIcon.setColorFilterMode(PorterDuff.Mode.SRC.MULTIPLY);
mFolderTitleView = (TextView) findViewById(R.id.folder_title);
mTitleView = (TextView) findViewById(R.id.title);
- mUrlView = (TextView) findViewById(R.id.url);
mHighlightView = (EnhancedBookmarkItemHighlightView) findViewById(R.id.highlight);
}
@@ -172,7 +196,6 @@ public class EnhancedBookmarkItem extends FrameLayout implements EnhancedBookmar
mMoreIcon.setVisibility(bookmarkItem.isEditable() ? VISIBLE : GONE);
mTitleView.setText(bookmarkItem.getTitle());
- mUrlView.setText(Uri.parse(bookmarkItem.getUrl()).getHost());
mFolderTitleView.setVisibility(View.INVISIBLE);
BookmarkId parentId = bookmarkItem.getParentId();
@@ -186,8 +209,23 @@ public class EnhancedBookmarkItem extends FrameLayout implements EnhancedBookmar
}
}
- mSalientImageView.load(mDelegate.getModel(), bookmarkItem.getUrl(),
- EnhancedBookmarkUtils.generateBackgroundColor(bookmarkItem));
+ mUrl = bookmarkItem.getUrl();
+ mLargeIconBridge.getLargeIconForUrl(Profile.getLastUsedProfile(), mUrl, mMinIconSize, this);
+ }
+
+ @Override
+ public void onLargeIconAvailable(Bitmap icon, int fallbackColor) {
+ if (icon == null) {
+ mIconGenerator.setBackgroundColor(fallbackColor);
+ icon = mIconGenerator.generateIconForUrl(mUrl);
+ mIconImageView.setImageDrawable(new BitmapDrawable(getResources(), icon));
+ } else {
+ RoundedBitmapDrawable roundedIcon = RoundedBitmapDrawableFactory.create(
+ getResources(),
+ Bitmap.createScaledBitmap(icon, mDisplayedIconSize, mDisplayedIconSize, true));
+ roundedIcon.setCornerRadius(mCornerRadius);
+ mIconImageView.setImageDrawable(roundedIcon);
+ }
}
@Override

Powered by Google App Engine
This is Rietveld 408576698