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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/physicalweb/NearbyUrlsAdapter.java

Issue 1427663004: Use BitmapHttpRequest to fetch favicon for Nearby URLs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: wip (taking changes from dfalcantara,dvh) Created 5 years, 2 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/src/org/chromium/chrome/browser/physicalweb/NearbyUrlsAdapter.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/NearbyUrlsAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/NearbyUrlsAdapter.java
index fffd6c9164117b77ff70fa147cbf5d2b966b8e9d..2a0db9e2add84be9a28954a118cca2dffa6f80f2 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/NearbyUrlsAdapter.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/NearbyUrlsAdapter.java
@@ -5,6 +5,7 @@
package org.chromium.chrome.browser.physicalweb;
import android.content.Context;
+import android.graphics.Bitmap;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -14,16 +15,41 @@ import android.widget.TextView;
import org.chromium.chrome.R;
+import java.util.HashMap;
+
/**
* Adapter for displaying nearby URLs and associated metadata.
*/
class NearbyUrlsAdapter extends ArrayAdapter<PwsResult> {
+ private final HashMap<String, Bitmap> mIconUrlToIconMap;
/**
* Construct an empty NearbyUrlsAdapter.
*/
public NearbyUrlsAdapter(Context context) {
super(context, 0);
+ mIconUrlToIconMap = new HashMap<>();
+ }
+
+ /**
+ * Update the favicon for a nearby URL.
+ * @param iconUrl The icon URL as returned by PWS
+ * @param icon The favicon to display
+ */
+ public void setIcon(String iconUrl, Bitmap icon) {
+ if (iconUrl != null && icon != null) {
+ mIconUrlToIconMap.put(iconUrl, icon);
+ notifyDataSetChanged();
+ }
+ }
+
+ /**
+ * Clear the list, forgetting cached URL metadata and icons.
+ */
+ @Override
+ public void clear() {
+ super.clear();
+ mIconUrlToIconMap.clear();
}
/**
@@ -46,10 +72,12 @@ class NearbyUrlsAdapter extends ArrayAdapter<PwsResult> {
ImageView iconImageView = (ImageView) view.findViewById(R.id.nearby_urls_icon);
PwsResult pwsResult = getItem(position);
+ Bitmap iconBitmap = mIconUrlToIconMap.get(pwsResult.iconUrl);
+
titleTextView.setText(pwsResult.title);
urlTextView.setText(pwsResult.siteUrl);
descriptionTextView.setText(pwsResult.description);
- iconImageView.setImageBitmap(null);
+ iconImageView.setImageBitmap(iconBitmap);
return view;
}

Powered by Google App Engine
This is Rietveld 408576698