summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2017-02-17 18:04:07 +0100
committerKonstantin Käfer <mail@kkaefer.com>2017-02-20 14:36:27 +0100
commit9ad29af400c6172dc13ce1b18a73a47e8fb66e28 (patch)
treefeba976d46b2bdfa6fe38d275b36ae4a3eadeac4 /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java
parentc86e38e303cf12dc1bb10d70437b5a3957bea43e (diff)
downloadqtlocation-mapboxgl-9ad29af400c6172dc13ce1b18a73a47e8fb66e28.tar.gz
[android] OfflineManager#setResourceTransform to allow transforming URLs prior to internet requests
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java32
1 files changed, 32 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java
index d2371fcc2f..09acda792c 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java
@@ -10,6 +10,7 @@ import android.support.annotation.NonNull;
import com.mapbox.mapboxsdk.Mapbox;
import com.mapbox.mapboxsdk.constants.MapboxConstants;
+import com.mapbox.mapboxsdk.storage.Resource;
import java.io.File;
@@ -81,6 +82,22 @@ public class OfflineManager {
void onError(String error);
}
+ /**
+ * This callback allows implementors to transform URLs before they are requested
+ * from the internet. This can be used add or remove custom parameters, or reroute
+ * certain requests to other servers or endpoints.
+ */
+ public interface ResourceTransformCallback {
+ /**
+ * Called whenever a URL needs to be transformed.
+ *
+ * @param kind The kind of URL to be transformed.
+ * @param offlineRegions The original URL to be transformed.
+ * @return A URL that will now be downloaded.
+ */
+ String onURL(@Resource.Kind int kind, String url);
+ }
+
/*
* Constructors
*/
@@ -265,6 +282,18 @@ public class OfflineManager {
});
}
+ /**
+ * Sets a callback for transforming URLs requested from the internet
+ * <p>
+ * The callback will be executed on the main thread once for every requested URL.
+ * </p>
+ *
+ * @param callback the callback to be invoked
+ */
+ public void setResourceTransform(@NonNull final ResourceTransformCallback callback) {
+ setResourceTransform(mDefaultFileSourcePtr, callback);
+ }
+
/*
* Changing or bypassing this limit without permission from Mapbox is prohibited
* by the Mapbox Terms of Service.
@@ -291,6 +320,9 @@ public class OfflineManager {
long defaultFileSourcePtr, OfflineRegionDefinition definition,
byte[] metadata, CreateOfflineRegionCallback callback);
+ private native void setResourceTransform(
+ long defaultFileSourcePtr, ResourceTransformCallback callback);
+
private native void setOfflineMapboxTileCountLimit(
long defaultFileSourcePtr, long limit);