diff --git a/docs/Changelog.md b/docs/Changelog.md index 2e1beb63..ee3ba052 100644 --- a/docs/Changelog.md +++ b/docs/Changelog.md @@ -15,6 +15,7 @@ - House numbers (nodes) fix visibility [#168](https://github.com/mapsforge/vtm/issues/168) - Android fix quick scale vs long press [#250](https://github.com/mapsforge/vtm/issues/250) - Use baseline 160dpi in scaling [#236](https://github.com/mapsforge/vtm/issues/236) +- OkHttp3 update [#138](https://github.com/mapsforge/vtm/issues/138) - libGDX double tap zoom [#263](https://github.com/mapsforge/vtm/issues/263) - MapFileTileSource zoom level API enhancements [#219](https://github.com/mapsforge/vtm/issues/219) - Animator enhancements with easing functions [#246](https://github.com/mapsforge/vtm/issues/246) diff --git a/vtm-app/build.gradle b/vtm-app/build.gradle index 6276c6d0..16cc6cf8 100644 --- a/vtm-app/build.gradle +++ b/vtm-app/build.gradle @@ -5,7 +5,7 @@ dependencies { compile project(':vtm-themes') compile project(':vtm-extras') compile 'com.noveogroup.android:android-logger:1.3.6' - compile 'com.squareup.okhttp:okhttp:2.6.0' + compile 'com.squareup.okhttp3:okhttp:3.6.0' } android { diff --git a/vtm-app/src/org/osmdroid/utils/HttpConnection.java b/vtm-app/src/org/osmdroid/utils/HttpConnection.java index baa900d0..104c3c94 100644 --- a/vtm-app/src/org/osmdroid/utils/HttpConnection.java +++ b/vtm-app/src/org/osmdroid/utils/HttpConnection.java @@ -2,25 +2,26 @@ package org.osmdroid.utils; import android.util.Log; -import com.squareup.okhttp.OkHttpClient; -import com.squareup.okhttp.Request; -import com.squareup.okhttp.Response; - import java.io.IOException; import java.io.InputStream; import java.util.concurrent.TimeUnit; +import okhttp3.OkHttpClient; +import okhttp3.OkHttpClient.Builder; +import okhttp3.Request; +import okhttp3.Response; + /** * A "very very simple to use" class for performing http get and post requests. * So many ways to do that, and potential subtle issues. * If complexity should be added to handle even more issues, complexity should be put here and only here. - *
+ ** Typical usage: *
HttpConnection connection = new HttpConnection(); * connection.doGet("http://www.google.com"); * InputStream stream = connection.getStream(); * if (stream != null) { - * //use this stream, for buffer reading, or XML SAX parsing, or whatever... + * //use this stream, for buffer reading, or XML SAX parsing, or whatever... * } * connection.close();*/ @@ -35,9 +36,14 @@ public class HttpConnection { private static OkHttpClient getOkHttpClient() { if (client == null) { - client = new OkHttpClient(); + Builder b = new Builder(); + b.connectTimeout(TIMEOUT_CONNECTION, TimeUnit.MILLISECONDS); + b.readTimeout(TIMEOUT_SOCKET, TimeUnit.MILLISECONDS); + client = b.build(); + /* client.setConnectTimeout(TIMEOUT_CONNECTION, TimeUnit.MILLISECONDS); client.setReadTimeout(TIMEOUT_SOCKET, TimeUnit.MILLISECONDS); + */ } return client; } @@ -73,15 +79,10 @@ public class HttpConnection { * @return the opened InputStream, or null if creation failed for any reason. */ public InputStream getStream() { - try { - if (response == null) - return null; - stream = response.body().byteStream(); - return stream; - } catch (IOException e) { - e.printStackTrace(); + if (response == null) return null; - } + stream = response.body().byteStream(); + return stream; } /** diff --git a/vtm-http/build.gradle b/vtm-http/build.gradle index 4aae9007..d8de1eeb 100644 --- a/vtm-http/build.gradle +++ b/vtm-http/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'maven' dependencies { compile project(':vtm') - compile 'com.squareup.okhttp:okhttp:1.5.2' + compile 'com.squareup.okhttp3:okhttp:3.6.0' } sourceSets { diff --git a/vtm-http/src/org/oscim/tiling/source/OkHttpEngine.java b/vtm-http/src/org/oscim/tiling/source/OkHttpEngine.java index b2d20f5a..5b7467cf 100644 --- a/vtm-http/src/org/oscim/tiling/source/OkHttpEngine.java +++ b/vtm-http/src/org/oscim/tiling/source/OkHttpEngine.java @@ -1,6 +1,7 @@ /* * Copyright 2014 Charles Greb * Copyright 2014 Hannes Janetzek + * Copyright 2017 devemux86 * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -17,24 +18,21 @@ */ package org.oscim.tiling.source; -import com.squareup.okhttp.HttpResponseCache; -import com.squareup.okhttp.OkHttpClient; - import org.oscim.core.Tile; import org.oscim.utils.IOUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.net.HttpURLConnection; import java.net.URL; import java.util.Map.Entry; +import okhttp3.Cache; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; + public class OkHttpEngine implements HttpEngine { - static final Logger log = LoggerFactory.getLogger(OkHttpEngine.class); private final OkHttpClient mClient; private final UrlTileSource mTileSource; @@ -46,9 +44,10 @@ public class OkHttpEngine implements HttpEngine { mClient = new OkHttpClient(); } - public OkHttpFactory(HttpResponseCache responseCache) { - mClient = new OkHttpClient(); - mClient.setResponseCache(responseCache); + public OkHttpFactory(Cache cache) { + mClient = new OkHttpClient.Builder() + .cache(cache) + .build(); } @Override @@ -75,17 +74,13 @@ public class OkHttpEngine implements HttpEngine { throw new IllegalArgumentException("Tile cannot be null."); } URL url = new URL(mTileSource.getTileUrl(tile)); - HttpURLConnection conn = mClient.open(url); - + Request.Builder builder = new Request.Builder() + .url(url); for (Entry