|
@@ -1,25 +1,17 @@
|
|
|
-package eu.kanade.mangafeed.data.helpers;
|
|
|
+package eu.kanade.mangafeed.data.network;
|
|
|
|
|
|
|
|
|
import com.squareup.okhttp.CacheControl;
|
|
|
import com.squareup.okhttp.Headers;
|
|
|
-import com.squareup.okhttp.MediaType;
|
|
|
import com.squareup.okhttp.OkHttpClient;
|
|
|
import com.squareup.okhttp.Request;
|
|
|
import com.squareup.okhttp.RequestBody;
|
|
|
import com.squareup.okhttp.Response;
|
|
|
-import com.squareup.okhttp.ResponseBody;
|
|
|
|
|
|
-import java.io.IOException;
|
|
|
import java.net.CookieManager;
|
|
|
import java.net.CookiePolicy;
|
|
|
import java.net.CookieStore;
|
|
|
|
|
|
-import okio.Buffer;
|
|
|
-import okio.BufferedSource;
|
|
|
-import okio.ForwardingSource;
|
|
|
-import okio.Okio;
|
|
|
-import okio.Source;
|
|
|
import rx.Observable;
|
|
|
|
|
|
public final class NetworkHelper {
|
|
@@ -121,48 +113,4 @@ public final class NetworkHelper {
|
|
|
return cookieManager.getCookieStore();
|
|
|
}
|
|
|
|
|
|
- private static class ProgressResponseBody extends ResponseBody {
|
|
|
-
|
|
|
- private final ResponseBody responseBody;
|
|
|
- private final ProgressListener progressListener;
|
|
|
- private BufferedSource bufferedSource;
|
|
|
-
|
|
|
- public ProgressResponseBody(ResponseBody responseBody, ProgressListener progressListener) {
|
|
|
- this.responseBody = responseBody;
|
|
|
- this.progressListener = progressListener;
|
|
|
- }
|
|
|
-
|
|
|
- @Override public MediaType contentType() {
|
|
|
- return responseBody.contentType();
|
|
|
- }
|
|
|
-
|
|
|
- @Override public long contentLength() throws IOException {
|
|
|
- return responseBody.contentLength();
|
|
|
- }
|
|
|
-
|
|
|
- @Override public BufferedSource source() throws IOException {
|
|
|
- if (bufferedSource == null) {
|
|
|
- bufferedSource = Okio.buffer(source(responseBody.source()));
|
|
|
- }
|
|
|
- return bufferedSource;
|
|
|
- }
|
|
|
-
|
|
|
- private Source source(Source source) {
|
|
|
- return new ForwardingSource(source) {
|
|
|
- long totalBytesRead = 0L;
|
|
|
- @Override public long read(Buffer sink, long byteCount) throws IOException {
|
|
|
- long bytesRead = super.read(sink, byteCount);
|
|
|
- // read() returns the number of bytes read, or -1 if this source is exhausted.
|
|
|
- totalBytesRead += bytesRead != -1 ? bytesRead : 0;
|
|
|
- progressListener.update(totalBytesRead, responseBody.contentLength(), bytesRead == -1);
|
|
|
- return bytesRead;
|
|
|
- }
|
|
|
- };
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public interface ProgressListener {
|
|
|
- void update(long bytesRead, long contentLength, boolean done);
|
|
|
- }
|
|
|
-
|
|
|
}
|