Authentication with batoto done

This commit is contained in:
inorichi
2015-10-26 17:29:16 +01:00
parent 8b0b174c93
commit 1b45ff3b12
13 changed files with 186 additions and 32 deletions

View File

@@ -5,22 +5,31 @@ import com.squareup.okhttp.CacheControl;
import com.squareup.okhttp.Headers;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.RequestBody;
import com.squareup.okhttp.Response;
import java.net.CookieManager;
import java.net.CookiePolicy;
import java.net.CookieStore;
import rx.Observable;
public final class NetworkHelper {
private OkHttpClient mClient;
private CookieManager cookieManager;
public final CacheControl NULL_CACHE_CONTROL = new CacheControl.Builder().noCache().build();
public final Headers NULL_HEADERS = new Headers.Builder().build();
public NetworkHelper() {
mClient = new OkHttpClient();
cookieManager = new CookieManager();
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
mClient.setCookieHandler(cookieManager);
}
public Observable<Response> getResponse(final String url, final CacheControl cacheControl, final Headers headers) {
public Observable<Response> getResponse(final String url, final Headers headers, final CacheControl cacheControl) {
return Observable.create(subscriber -> {
try {
if (!subscriber.isUnsubscribed()) {
@@ -49,10 +58,32 @@ public final class NetworkHelper {
});
}
public Observable<String> getStringResponse(final String url, final CacheControl cacheControl, final Headers headers) {
public Observable<String> getStringResponse(final String url, final Headers headers, final CacheControl cacheControl) {
return getResponse(url, cacheControl, headers)
return getResponse(url, headers, cacheControl)
.flatMap(this::mapResponseToString);
}
public Observable<Response> postData(final String url, final RequestBody formBody, final Headers headers) {
return Observable.create(subscriber -> {
try {
if (!subscriber.isUnsubscribed()) {
Request request = new Request.Builder()
.url(url)
.post(formBody)
.headers(headers != null ? headers : NULL_HEADERS)
.build();
subscriber.onNext(mClient.newCall(request).execute());
}
subscriber.onCompleted();
} catch (Throwable e) {
subscriber.onError(e);
}
});
}
public CookieStore getCookies() {
return cookieManager.getCookieStore();
}
}

View File

@@ -1,5 +1,7 @@
package eu.kanade.mangafeed.data.helpers;
import android.content.Context;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -17,11 +19,11 @@ public class SourceManager {
private HashMap<Integer, Source> mSourcesMap;
private NetworkHelper mNetworkHelper;
private CacheManager mCacheManager;
private Context context;
public SourceManager(NetworkHelper networkHelper, CacheManager cacheManager) {
public SourceManager(Context context) {
mSourcesMap = new HashMap<>();
mNetworkHelper = networkHelper;
mCacheManager = cacheManager;
this.context = context;
initializeSources();
}
@@ -36,9 +38,9 @@ public class SourceManager {
private Source createSource(int sourceKey) {
switch (sourceKey) {
case BATOTO:
return new Batoto(mNetworkHelper, mCacheManager);
return new Batoto(context);
case MANGAHERE:
return new MangaHere(mNetworkHelper, mCacheManager);
return new MangaHere(context);
}
return null;