From 885185b35215b61fc771a04c28cddec711509815 Mon Sep 17 00:00:00 2001 From: Brad Leege Date: Wed, 25 Feb 2015 16:25:03 -0600 Subject: [PATCH 1/3] #823 - Adding OkHttp dependency. Initial setup of JavaFileSource as a singleton class. --- android/java/MapboxGLAndroidSDK/build.gradle | 1 + .../mapboxgl/lib/util/JavaFileSource.java | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/lib/util/JavaFileSource.java diff --git a/android/java/MapboxGLAndroidSDK/build.gradle b/android/java/MapboxGLAndroidSDK/build.gradle index 806134394..ebfe98cd8 100644 --- a/android/java/MapboxGLAndroidSDK/build.gradle +++ b/android/java/MapboxGLAndroidSDK/build.gradle @@ -31,6 +31,7 @@ dependencies { compile 'commons-validator:commons-validator:1.4.1' compile 'com.android.support:support-annotations:21.0.3' compile 'com.android.support:support-v4:21.0.3' + compile 'com.squareup.okhttp:okhttp:2.2.0' } android { diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/lib/util/JavaFileSource.java b/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/lib/util/JavaFileSource.java new file mode 100644 index 000000000..91863accf --- /dev/null +++ b/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/lib/util/JavaFileSource.java @@ -0,0 +1,24 @@ +package com.mapbox.mapboxgl.lib.util; + +public class JavaFileSource { + + private static JavaFileSource instance = null; + + /** + * Private Constructor to support Singleton pattern + */ + private JavaFileSource() { + super(); + } + + /** + * Get the singleton instance of JavaFileSource + * @return Reference to the Singleton Instance of JavaFileSource + */ + public static JavaFileSource getInstance() { + if (instance == null) { + instance = new JavaFileSource(); + } + return instance; + } +} From 2bfafaddb1a824cbc7ec4315aac40995328cbd7c Mon Sep 17 00:00:00 2001 From: Brad Leege Date: Wed, 25 Feb 2015 16:48:54 -0600 Subject: [PATCH 2/3] #823 - Building request method --- .../mapboxgl/lib/util/JavaFileSource.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/lib/util/JavaFileSource.java b/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/lib/util/JavaFileSource.java index 91863accf..f9b141797 100644 --- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/lib/util/JavaFileSource.java +++ b/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/lib/util/JavaFileSource.java @@ -1,14 +1,22 @@ package com.mapbox.mapboxgl.lib.util; +import com.squareup.okhttp.Callback; +import com.squareup.okhttp.OkHttpClient; +import com.squareup.okhttp.Request; + public class JavaFileSource { private static JavaFileSource instance = null; + // Single reference to OkHttp for performance gains + private OkHttpClient client; + /** * Private Constructor to support Singleton pattern */ private JavaFileSource() { super(); + client = new OkHttpClient(); } /** @@ -21,4 +29,18 @@ public class JavaFileSource { } return instance; } + + /** + * Make an HTTP Request + * @param resourceUrl URL to resource + * @param callback Callback class + * @return Request created + */ + public Request request(final String resourceUrl, final Callback callback) { + Request request = new Request.Builder().url(resourceUrl).build(); + + client.newCall(request).enqueue(callback); + + return request; + } } From a4b6067d4f680c42e7ec033b41bc02c63d111e18 Mon Sep 17 00:00:00 2001 From: Brad Leege Date: Wed, 25 Feb 2015 17:01:13 -0600 Subject: [PATCH 3/3] #823 - Building cancel method. Refactoring request to not return OkHttp Request object to help keep FileSource self contained. --- .../mapboxgl/lib/constants/MapboxConstants.java | 10 ++++++++++ .../com/mapbox/mapboxgl/lib/util/JavaFileSource.java | 11 ++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/lib/constants/MapboxConstants.java diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/lib/constants/MapboxConstants.java b/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/lib/constants/MapboxConstants.java new file mode 100644 index 000000000..4816dbf4d --- /dev/null +++ b/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/lib/constants/MapboxConstants.java @@ -0,0 +1,10 @@ +package com.mapbox.mapboxgl.lib.constants; + +import java.util.Locale; + +public class MapboxConstants { + + // Default Locale for data processing (ex: String.toLowerCase(MAPBOX_LOCALE, "foo")) + public static final Locale MAPBOX_LOCALE = Locale.US; + +} diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/lib/util/JavaFileSource.java b/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/lib/util/JavaFileSource.java index f9b141797..1081657b0 100644 --- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/lib/util/JavaFileSource.java +++ b/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/lib/util/JavaFileSource.java @@ -1,5 +1,6 @@ package com.mapbox.mapboxgl.lib.util; +import com.mapbox.mapboxgl.lib.constants.MapboxConstants; import com.squareup.okhttp.Callback; import com.squareup.okhttp.OkHttpClient; import com.squareup.okhttp.Request; @@ -34,13 +35,13 @@ public class JavaFileSource { * Make an HTTP Request * @param resourceUrl URL to resource * @param callback Callback class - * @return Request created */ - public Request request(final String resourceUrl, final Callback callback) { - Request request = new Request.Builder().url(resourceUrl).build(); - + public void request(final String resourceUrl, final Callback callback) { + Request request = new Request.Builder().url(resourceUrl).tag(resourceUrl.toLowerCase(MapboxConstants.MAPBOX_LOCALE)).build(); client.newCall(request).enqueue(callback); + } - return request; + public void cancel(final String resourceUrl) { + client.cancel(resourceUrl.toLowerCase(MapboxConstants.MAPBOX_LOCALE)); } }