|
|
@ -8,12 +8,14 @@ import android.support.annotation.Nullable; |
|
|
|
import android.util.Log; |
|
|
|
import android.util.Log; |
|
|
|
|
|
|
|
|
|
|
|
import java.io.File; |
|
|
|
import java.io.File; |
|
|
|
|
|
|
|
import java.io.IOException; |
|
|
|
import java.io.InputStream; |
|
|
|
import java.io.InputStream; |
|
|
|
|
|
|
|
|
|
|
|
import acr.browser.lightning.utils.Utils; |
|
|
|
import acr.browser.lightning.utils.Utils; |
|
|
|
import okhttp3.OkHttpClient; |
|
|
|
import okhttp3.OkHttpClient; |
|
|
|
import okhttp3.Request; |
|
|
|
import okhttp3.Request; |
|
|
|
import okhttp3.Response; |
|
|
|
import okhttp3.Response; |
|
|
|
|
|
|
|
import okhttp3.ResponseBody; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* An image fetcher that creates image |
|
|
|
* An image fetcher that creates image |
|
|
@ -65,11 +67,17 @@ class ImageFetcher { |
|
|
|
Request imageRequest = new Request.Builder().url(url).build(); |
|
|
|
Request imageRequest = new Request.Builder().url(url).build(); |
|
|
|
|
|
|
|
|
|
|
|
Response boundsResponse = mHttpClient.newCall(imageRequest).execute(); |
|
|
|
Response boundsResponse = mHttpClient.newCall(imageRequest).execute(); |
|
|
|
boundsStream = boundsResponse.body().byteStream(); |
|
|
|
ResponseBody boundsBody = boundsResponse.body(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (boundsBody == null) { |
|
|
|
|
|
|
|
return null; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
boundsStream = boundsBody.byteStream(); |
|
|
|
|
|
|
|
|
|
|
|
BitmapFactory.decodeStream(boundsStream, null, mLoaderOptions); |
|
|
|
BitmapFactory.decodeStream(boundsStream, null, mLoaderOptions); |
|
|
|
|
|
|
|
|
|
|
|
boundsResponse.body().close(); |
|
|
|
boundsBody.close(); |
|
|
|
|
|
|
|
|
|
|
|
int size = Utils.dpToPx(24); |
|
|
|
int size = Utils.dpToPx(24); |
|
|
|
|
|
|
|
|
|
|
@ -77,12 +85,19 @@ class ImageFetcher { |
|
|
|
mLoaderOptions.inJustDecodeBounds = false; |
|
|
|
mLoaderOptions.inJustDecodeBounds = false; |
|
|
|
|
|
|
|
|
|
|
|
Response imageResponse = mHttpClient.newCall(imageRequest).execute(); |
|
|
|
Response imageResponse = mHttpClient.newCall(imageRequest).execute(); |
|
|
|
iconStream = imageResponse.body().byteStream(); |
|
|
|
|
|
|
|
|
|
|
|
ResponseBody imageBody = imageResponse.body(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (imageBody == null) { |
|
|
|
|
|
|
|
return null; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
iconStream = imageBody.byteStream(); |
|
|
|
|
|
|
|
|
|
|
|
icon = BitmapFactory.decodeStream(iconStream, null, mLoaderOptions); |
|
|
|
icon = BitmapFactory.decodeStream(iconStream, null, mLoaderOptions); |
|
|
|
|
|
|
|
|
|
|
|
imageResponse.body().close(); |
|
|
|
imageBody.close(); |
|
|
|
} catch (Exception e) { |
|
|
|
} catch (IOException exception) { |
|
|
|
Log.d(TAG, "Unable to download icon: " + url); |
|
|
|
Log.d(TAG, "Unable to download icon: " + url); |
|
|
|
} finally { |
|
|
|
} finally { |
|
|
|
Utils.close(boundsStream); |
|
|
|
Utils.close(boundsStream); |
|
|
|