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

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

Issue 1427663004: Use BitmapHttpRequest to fetch favicon for Nearby URLs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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/ListUrlsActivity.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/ListUrlsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/ListUrlsActivity.java
index 979beddb612074610b5ff62e86cbc00270142199..0df50b3b77f2d34a2aad9076abe7633f67db6ee5 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/ListUrlsActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/ListUrlsActivity.java
@@ -6,14 +6,17 @@ package org.chromium.chrome.browser.physicalweb;
import android.app.ListActivity;
import android.content.Intent;
+import android.graphics.Bitmap;
import android.net.Uri;
+import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
-import android.widget.ArrayAdapter;
import android.widget.ListView;
+import org.chromium.base.Log;
import org.chromium.chrome.R;
+import java.net.MalformedURLException;
import java.util.Collection;
import java.util.HashSet;
@@ -23,7 +26,7 @@ import java.util.HashSet;
*/
public class ListUrlsActivity extends ListActivity {
private static final String TAG = "PhysicalWeb";
- private ArrayAdapter<PwsResult> mAdapter;
+ private NearbyUrlsAdapter mAdapter;
private PwsClient mPwsClient;
@Override
@@ -49,9 +52,15 @@ public class ListUrlsActivity extends ListActivity {
Collection<String> siteUrls = new HashSet<>();
for (PwsResult pwsResult : pwsResults) {
String siteUrl = pwsResult.siteUrl;
+ String iconUrl = pwsResult.iconUrl;
+
if (siteUrl != null && !siteUrls.contains(siteUrl)) {
siteUrls.add(siteUrl);
mAdapter.add(pwsResult);
+
+ if (iconUrl != null) {
+ fetchIcon(iconUrl);
+ }
}
}
}
@@ -72,6 +81,30 @@ public class ListUrlsActivity extends ListActivity {
startActivity(intent);
}
+ private void fetchIcon(final String iconUrl) {
+ BitmapHttpRequest iconRequest = null;
+ try {
+ iconRequest = new BitmapHttpRequest(iconUrl, new BitmapHttpRequest.RequestCallback() {
+ @Override
+ public void onResponse(Bitmap iconBitmap) {
+ mAdapter.setIcon(iconUrl, iconBitmap);
+ }
+
+ @Override
+ public void onError(int httpResponseCode, Exception e) {
+ Log.e(TAG, "Error fetching icon, returned code " + httpResponseCode);
+ }
+ });
+ } catch (MalformedURLException e) {
+ Log.e(TAG, "Error creating icon request, malformed icon URL");
+ }
+
+ if (iconRequest != null) {
+ // The callback will be called on the main thread.
+ AsyncTask.THREAD_POOL_EXECUTOR.execute(iconRequest);
dvh 2015/10/28 23:46:40 I would rather move the threading logic to PwsClie
cco3 2015/10/29 00:38:13 Yea, this whole method could be moved to PwsClient
+ }
+ }
+
private static Intent createNavigateToUrlIntent(PwsResult pwsResult) {
String url = pwsResult.siteUrl;
if (url == null) {

Powered by Google App Engine
This is Rietveld 408576698