Skip to content

Commit b0a7d28

Browse files
committed
Merge pull request nostra13#1037 from mrleolink/master
Fix bug OkHttpImageDownloader reports wrong values to ImageLoadingProgressListener
2 parents e713e11 + 8d34490 commit b0a7d28

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

sample/src/main/java/com/nostra13/universalimageloader/sample/ext/OkHttpImageDownloader.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,12 @@
1616
package com.nostra13.universalimageloader.sample.ext;
1717

1818
import android.content.Context;
19+
20+
import com.nostra13.universalimageloader.core.assist.ContentLengthInputStream;
1921
import com.nostra13.universalimageloader.core.download.BaseImageDownloader;
2022
import com.squareup.okhttp.OkHttpClient;
2123
import com.squareup.okhttp.Request;
24+
import com.squareup.okhttp.ResponseBody;
2225

2326
import java.io.IOException;
2427
import java.io.InputStream;
@@ -27,6 +30,7 @@
2730
* Implementation of ImageDownloader which uses {@link com.squareup.okhttp.OkHttpClient} for image stream retrieving.
2831
*
2932
* @author Sergey Tarasevich (nostra13[at]gmail[dot]com)
33+
* @author Leo Link (mr[dot]leolink[at]gmail[dot]com)
3034
*/
3135
public class OkHttpImageDownloader extends BaseImageDownloader {
3236

@@ -40,6 +44,9 @@ public OkHttpImageDownloader(Context context, OkHttpClient client) {
4044
@Override
4145
protected InputStream getStreamFromNetwork(String imageUri, Object extra) throws IOException {
4246
Request request = new Request.Builder().url(imageUri).build();
43-
return client.newCall(request).execute().body().byteStream();
47+
ResponseBody responseBody = client.newCall(request).execute().body();
48+
InputStream inputStream = responseBody.byteStream();
49+
int contentLength = (int) responseBody.contentLength();
50+
return new ContentLengthInputStream(inputStream, contentLength);
4451
}
4552
}

0 commit comments

Comments
 (0)