Chromium Code Reviews| 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) { |