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

Reply via email to