From dce958945cce147d14a1c0d63db4fb8bc3822054 Mon Sep 17 00:00:00 2001 From: Malcolm Windsor Date: Mon, 3 Aug 2015 13:47:02 +0100 Subject: [PATCH 1/7] Added channel parameter --- .../java/com/google/maps/DistanceMatrixApiRequest.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/com/google/maps/DistanceMatrixApiRequest.java b/src/main/java/com/google/maps/DistanceMatrixApiRequest.java index f50bb9b7e..3babaa779 100644 --- a/src/main/java/com/google/maps/DistanceMatrixApiRequest.java +++ b/src/main/java/com/google/maps/DistanceMatrixApiRequest.java @@ -53,6 +53,15 @@ protected void validateRequest() { } } + /** + * A channel to pass with the request + * + * @param channel String to pass with the request) + */ + public DistanceMatrixApiRequest channel(String channel) { + return param("channel", join('|', channel)); + } + /** * One or more addresses from which to calculate distance and time. The service will geocode * the string and convert it to a latitude/longitude coordinate to calculate directions. From db06ad361f3a70a746e20d3a454cb2e4c9566583 Mon Sep 17 00:00:00 2001 From: Malcolm Windsor Date: Thu, 6 Aug 2015 09:42:53 +0100 Subject: [PATCH 2/7] Moved channel method into PendingResultBase to make available for other endpoints --- .../com/google/maps/DistanceMatrixApiRequest.java | 9 --------- src/main/java/com/google/maps/PendingResultBase.java | 11 +++++++++++ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/google/maps/DistanceMatrixApiRequest.java b/src/main/java/com/google/maps/DistanceMatrixApiRequest.java index 3babaa779..f50bb9b7e 100644 --- a/src/main/java/com/google/maps/DistanceMatrixApiRequest.java +++ b/src/main/java/com/google/maps/DistanceMatrixApiRequest.java @@ -53,15 +53,6 @@ protected void validateRequest() { } } - /** - * A channel to pass with the request - * - * @param channel String to pass with the request) - */ - public DistanceMatrixApiRequest channel(String channel) { - return param("channel", join('|', channel)); - } - /** * One or more addresses from which to calculate distance and time. The service will geocode * the string and convert it to a latitude/longitude coordinate to calculate directions. diff --git a/src/main/java/com/google/maps/PendingResultBase.java b/src/main/java/com/google/maps/PendingResultBase.java index d8d86695a..b0b961cc7 100644 --- a/src/main/java/com/google/maps/PendingResultBase.java +++ b/src/main/java/com/google/maps/PendingResultBase.java @@ -113,4 +113,15 @@ protected Map params() { public final A language(String language) { return param("language", language); } + + /** + * A channel to pass with the request. channel is used by Google Maps API for Work + * users to be able to track usage across different applications with the same clientID. + * See: https://developers.google.com/maps/documentation/business/clientside/quota + * + * @param channel String to pass with the request for analytics + */ + public A channel(String channel) { + return param("channel", join('|', channel)); + } } From 9edfe7e924b554649452f6c0e39e5097c4860c91 Mon Sep 17 00:00:00 2001 From: Malcolm Windsor Date: Thu, 6 Aug 2015 09:56:47 +0100 Subject: [PATCH 3/7] Removed unnecessary join --- src/main/java/com/google/maps/PendingResultBase.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/google/maps/PendingResultBase.java b/src/main/java/com/google/maps/PendingResultBase.java index b0b961cc7..aaccb25a7 100644 --- a/src/main/java/com/google/maps/PendingResultBase.java +++ b/src/main/java/com/google/maps/PendingResultBase.java @@ -122,6 +122,6 @@ public final A language(String language) { * @param channel String to pass with the request for analytics */ public A channel(String channel) { - return param("channel", join('|', channel)); + return param("channel", channel); } } From 09d6745c3bef6e95ca292af0942a29a59949c1cc Mon Sep 17 00:00:00 2001 From: Malcolm Windsor Date: Tue, 11 Aug 2015 10:32:32 +0100 Subject: [PATCH 4/7] Added channel option to context, but allow request level overrides --- .../java/com/google/maps/GeoApiContext.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/main/java/com/google/maps/GeoApiContext.java b/src/main/java/com/google/maps/GeoApiContext.java index 2f23931fa..5b8e76946 100644 --- a/src/main/java/com/google/maps/GeoApiContext.java +++ b/src/main/java/com/google/maps/GeoApiContext.java @@ -47,6 +47,7 @@ public class GeoApiContext { private String apiKey; private String clientId; private UrlSigner urlSigner; + private String channel; private final OkHttpClient client = new OkHttpClient(); private final RateLimitExecutorService rateLimitExecutorService; @@ -60,6 +61,10 @@ public GeoApiContext() { > PendingResult get(ApiConfig config, Class clazz, Map params) { + if(channel != null && !channel.isEmpty() && !params.containsKey("channel")){ + params.put("channel", channel); + } + StringBuilder query = new StringBuilder(); for (Map.Entry param : params.entrySet()) { @@ -83,7 +88,11 @@ > PendingResult get(ApiConfig config, Class> PendingResult get(ApiConfig config, Class Date: Tue, 11 Aug 2015 10:52:32 +0100 Subject: [PATCH 5/7] Added self to contributors --- CONTRIBUTORS | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 1e55cb632..009850f05 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -10,6 +10,7 @@ Brantley Wells @gitbrantley Brett Morgan @domesticmouse Chris Broadfoot @broady Dave Holmes @dh-- +Malcolm Windsor @mwindsor-beoped Mark McDonald @markmcd Nicolas Poirier @NicolasPoirier Pulkit Bhuwalka @nutsiepully From e31e8cfc3e68fd7c5dd04afb16c7de501f43e4ac Mon Sep 17 00:00:00 2001 From: Malcolm Windsor Date: Mon, 17 Aug 2015 09:16:19 +0100 Subject: [PATCH 6/7] Changed semi-colon to full stop in comment. As requested by @domesticmouse --- src/main/java/com/google/maps/GeoApiContext.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/google/maps/GeoApiContext.java b/src/main/java/com/google/maps/GeoApiContext.java index 5b8e76946..9ff77e4a2 100644 --- a/src/main/java/com/google/maps/GeoApiContext.java +++ b/src/main/java/com/google/maps/GeoApiContext.java @@ -185,7 +185,7 @@ public GeoApiContext setEnterpriseCredentials(String clientId, String cryptograp } /** - * Sets the default channel for requests (can be overridden by requests). Only useful for Google Maps for Work clients; + * Sets the default channel for requests (can be overridden by requests). Only useful for Google Maps for Work clients. * @param channel The channel to use for analytics */ public GeoApiContext setChannel(String channel) { From 957f66c813bebdab3dae1db1143a7f618f765f55 Mon Sep 17 00:00:00 2001 From: Malcolm Windsor Date: Tue, 18 Aug 2015 09:55:01 +0100 Subject: [PATCH 7/7] Fixed typo, and added comment (requested by @marcmcd) and changed if statement formatting (requested by @broady) --- src/main/java/com/google/maps/GeoApiContext.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/google/maps/GeoApiContext.java b/src/main/java/com/google/maps/GeoApiContext.java index 9ff77e4a2..5a75e1588 100644 --- a/src/main/java/com/google/maps/GeoApiContext.java +++ b/src/main/java/com/google/maps/GeoApiContext.java @@ -104,8 +104,9 @@ > PendingResult get(ApiConfig config, Class