Brion VIBBER has submitted this change and it was merged. Change subject: Use OkHttp for HTTP requests ......................................................................
Use OkHttp for HTTP requests Depends on I859ed2394f85d88f23416a8eeee1d8593b3fcb96 Change-Id: I3b2a0ad964e0435a6f5111c2e728538e4f65a296 --- M wikipedia/pom.xml A wikipedia/src/main/java/org/wikipedia/OkHttpConnectionFactory.java M wikipedia/src/main/java/org/wikipedia/WikipediaApp.java 3 files changed, 47 insertions(+), 1 deletion(-) Approvals: Brion VIBBER: Verified; Looks good to me, approved diff --git a/wikipedia/pom.xml b/wikipedia/pom.xml index 7ea1a58..139e404 100644 --- a/wikipedia/pom.xml +++ b/wikipedia/pom.xml @@ -50,7 +50,7 @@ <dependency> <groupId>com.squareup.okhttp</groupId> <artifactId>okhttp</artifactId> - <version>1.2.1</version> + <version>1.3.0</version> </dependency> </dependencies> <build> diff --git a/wikipedia/src/main/java/org/wikipedia/OkHttpConnectionFactory.java b/wikipedia/src/main/java/org/wikipedia/OkHttpConnectionFactory.java new file mode 100644 index 0000000..68f348b --- /dev/null +++ b/wikipedia/src/main/java/org/wikipedia/OkHttpConnectionFactory.java @@ -0,0 +1,35 @@ +package org.wikipedia; + +import android.content.Context; +import com.github.kevinsawicki.http.HttpRequest; +import com.squareup.okhttp.HttpResponseCache; +import com.squareup.okhttp.OkHttpClient; + +import java.io.IOException; +import java.net.*; + +public class OkHttpConnectionFactory implements HttpRequest.ConnectionFactory { + private static final long HTTP_CACHE_SIZE = 16 * 1024 * 1024; + + private final OkHttpClient client; + + public OkHttpConnectionFactory(Context context) { + client = new OkHttpClient(); + try { + client.setResponseCache(new HttpResponseCache(context.getCacheDir(), HTTP_CACHE_SIZE)); + } catch (IOException e) { + // Shouldn't happen... + throw new RuntimeException(e); + } + } + + public HttpURLConnection create(URL url) throws IOException { + return client.open(url); + } + + @Override + public HttpURLConnection create(URL url, Proxy proxy) throws IOException { + throw new UnsupportedOperationException( + "Per-connection proxy is not supported. Use OkHttpClient's setProxy instead."); + } +} diff --git a/wikipedia/src/main/java/org/wikipedia/WikipediaApp.java b/wikipedia/src/main/java/org/wikipedia/WikipediaApp.java index 2e296cc..3d427a0 100644 --- a/wikipedia/src/main/java/org/wikipedia/WikipediaApp.java +++ b/wikipedia/src/main/java/org/wikipedia/WikipediaApp.java @@ -1,10 +1,14 @@ package org.wikipedia; import android.app.Application; +import android.content.Context; import android.content.SharedPreferences; import android.os.Build; import android.preference.PreferenceManager; import android.webkit.WebView; +import com.github.kevinsawicki.http.HttpRequest; +import com.squareup.okhttp.HttpResponseCache; +import com.squareup.okhttp.OkHttpClient; import com.squareup.otto.Bus; import org.acra.ACRA; import org.acra.ReportingInteractionMode; @@ -19,6 +23,11 @@ import org.wikipedia.savedpages.SavedPage; import org.wikipedia.savedpages.SavedPagePerister; +import java.io.File; +import java.io.IOException; +import java.net.HttpURLConnection; +import java.net.Proxy; +import java.net.URL; import java.util.HashMap; @ReportsCrashes( @@ -59,6 +68,8 @@ if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { WebView.setWebContentsDebuggingEnabled(true); } + + Api.setConnectionFactory(new OkHttpConnectionFactory(this)); } public Bus getBus() { -- To view, visit https://gerrit.wikimedia.org/r/107121 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I3b2a0ad964e0435a6f5111c2e728538e4f65a296 Gerrit-PatchSet: 1 Gerrit-Project: apps/android/wikipedia Gerrit-Branch: master Gerrit-Owner: Yuvipanda <yuvipa...@gmail.com> Gerrit-Reviewer: Brion VIBBER <br...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits