summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobrun <tobrun.van.nuland@gmail.com>2017-10-27 15:57:35 -0700
committerTobrun <tobrun@mapbox.com>2017-11-01 14:56:37 -0700
commitcb7f6dfaec2f90a81d588c2458e01d2a191f9ba1 (patch)
treeeeb4d9847940c571f5a03ae4e52f32fd776451be
parente5243b7691831e194ccb1638d33b8d4dd94f4d9c (diff)
downloadqtlocation-mapboxgl-cb7f6dfaec2f90a81d588c2458e01d2a191f9ba1.tar.gz
[android] - make snapshot logo optional
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshot.java11
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshotter.java18
-rw-r--r--platform/android/src/snapshotter/map_snapshot.cpp5
-rw-r--r--platform/android/src/snapshotter/map_snapshot.hpp1
-rw-r--r--platform/android/src/snapshotter/map_snapshotter.cpp7
-rw-r--r--platform/android/src/snapshotter/map_snapshotter.hpp2
6 files changed, 36 insertions, 8 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshot.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshot.java
index aefa962402..eb4f94c428 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshot.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshot.java
@@ -15,14 +15,16 @@ public class MapSnapshot {
private long nativePtr = 0;
private Bitmap bitmap;
private String[] attributions;
+ private boolean showLogo;
/**
* Created from native side
*/
- private MapSnapshot(long nativePtr, Bitmap bitmap, String[] attributions) {
+ private MapSnapshot(long nativePtr, Bitmap bitmap, String[] attributions, boolean showLogo) {
this.nativePtr = nativePtr;
this.bitmap = bitmap;
this.attributions = attributions;
+ this.showLogo = showLogo;
}
/**
@@ -47,6 +49,13 @@ public class MapSnapshot {
return attributions;
}
+ /**
+ * @return Flag indicating to show the Mapbox logo.
+ */
+ boolean isShowLogo() {
+ return showLogo;
+ }
+
// Unused, needed for peer binding
private native void initialize();
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshotter.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshotter.java
index 37d05fc328..00fa0171cd 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshotter.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshotter.java
@@ -74,6 +74,7 @@ public class MapSnapshotter {
private String styleUrl = Style.MAPBOX_STREETS;
private LatLngBounds region;
private CameraPosition cameraPosition;
+ private boolean showLogo = true;
/**
* @param width the width of the image
@@ -124,6 +125,15 @@ public class MapSnapshotter {
}
/**
+ * @param showLogo The flag indicating to show the Mapbox logo.
+ * @return the mutated {@link Options}
+ */
+ public Options withLogo(boolean showLogo) {
+ this.showLogo = showLogo;
+ return this;
+ }
+
+ /**
* @return the width of the image
*/
public int getWidth() {
@@ -182,7 +192,7 @@ public class MapSnapshotter {
nativeInitialize(this, fileSource, options.pixelRatio, options.width,
options.height, options.styleUrl, options.region, options.cameraPosition,
- programCacheDir);
+ options.showLogo, programCacheDir);
}
/**
@@ -266,7 +276,9 @@ public class MapSnapshotter {
*/
protected void onSnapshotReady(MapSnapshot snapshot) {
if (callback != null) {
- addOverlay(snapshot.getBitmap());
+ if (snapshot.isShowLogo()) {
+ addOverlay(snapshot.getBitmap());
+ }
callback.onSnapshotReady(snapshot);
reset();
}
@@ -294,7 +306,7 @@ public class MapSnapshotter {
FileSource fileSource, float pixelRatio,
int width, int height, String styleUrl,
LatLngBounds region, CameraPosition position,
- String programCacheDir);
+ boolean showLogo, String programCacheDir);
protected native void nativeStart();
diff --git a/platform/android/src/snapshotter/map_snapshot.cpp b/platform/android/src/snapshotter/map_snapshot.cpp
index 843a8a487a..f5092b3c56 100644
--- a/platform/android/src/snapshotter/map_snapshot.cpp
+++ b/platform/android/src/snapshotter/map_snapshot.cpp
@@ -27,14 +27,15 @@ jni::Object<MapSnapshot> MapSnapshot::New(JNIEnv& env,
PremultipliedImage&& image,
float pixelRatio,
std::vector<std::string> attributions,
+ bool showLogo,
mbgl::MapSnapshotter::PointForFn pointForFn) {
// Create the bitmap
auto bitmap = Bitmap::CreateBitmap(env, std::move(image));
// Create the Mapsnapshot peers
- static auto constructor = javaClass.GetConstructor<jni::jlong, jni::Object<Bitmap>, jni::Array<jni::String>>(env);
+ static auto constructor = javaClass.GetConstructor<jni::jlong, jni::Object<Bitmap>, jni::Array<jni::String>, jni::jboolean>(env);
auto nativePeer = std::make_unique<MapSnapshot>(pixelRatio, pointForFn);
- return javaClass.New(env, constructor, reinterpret_cast<jlong>(nativePeer.release()), bitmap, jni::Make<jni::Array<jni::String>>(env, attributions));
+ return javaClass.New(env, constructor, reinterpret_cast<jlong>(nativePeer.release()), bitmap, jni::Make<jni::Array<jni::String>>(env, attributions), (jni::jboolean) showLogo);
}
jni::Class<MapSnapshot> MapSnapshot::javaClass;
diff --git a/platform/android/src/snapshotter/map_snapshot.hpp b/platform/android/src/snapshotter/map_snapshot.hpp
index 64090bb48b..4673dcd16e 100644
--- a/platform/android/src/snapshotter/map_snapshot.hpp
+++ b/platform/android/src/snapshotter/map_snapshot.hpp
@@ -26,6 +26,7 @@ public:
PremultipliedImage&& image,
float pixelRatio,
std::vector<std::string> attributions,
+ bool showLogo,
PointForFn pointForFn);
MapSnapshot(jni::JNIEnv&) {};
diff --git a/platform/android/src/snapshotter/map_snapshotter.cpp b/platform/android/src/snapshotter/map_snapshotter.cpp
index 3c6623af40..637eb5c1fd 100644
--- a/platform/android/src/snapshotter/map_snapshotter.cpp
+++ b/platform/android/src/snapshotter/map_snapshotter.cpp
@@ -22,6 +22,7 @@ MapSnapshotter::MapSnapshotter(jni::JNIEnv& _env,
jni::String styleURL,
jni::Object<LatLngBounds> region,
jni::Object<CameraPosition> position,
+ jni::jboolean _showLogo,
jni::String _programCacheDir)
: javaPeer(SeizeGenericWeakRef(_env, jni::Object<MapSnapshotter>(jni::NewWeakGlobalRef(_env, _obj.Get()).release())))
, pixelRatio(_pixelRatio)
@@ -41,6 +42,8 @@ MapSnapshotter::MapSnapshotter(jni::JNIEnv& _env,
bounds = LatLngBounds::getLatLngBounds(_env, region);
}
+ showLogo = _showLogo;
+
// Create the core snapshotter
snapshotter = std::make_unique<mbgl::MapSnapshotter>(fileSource,
*threadPool,
@@ -70,7 +73,7 @@ void MapSnapshotter::start(JNIEnv&) {
javaPeer->Call(*_env, onSnapshotFailed, jni::Make<jni::String>(*_env, util::toString(err)));
} else {
// Create the wrapper
- auto mapSnapshot = android::MapSnapshot::New(*_env, std::move(image), pixelRatio, attributions, pointForFn);
+ auto mapSnapshot = android::MapSnapshot::New(*_env, std::move(image), pixelRatio, attributions, showLogo, pointForFn);
// invoke callback
static auto onSnapshotReady = javaClass.GetMethod<void (jni::Object<MapSnapshot>)>(*_env, "onSnapshotReady");
@@ -117,7 +120,7 @@ void MapSnapshotter::registerNative(jni::JNIEnv& env) {
// Register the peer
jni::RegisterNativePeer<MapSnapshotter>(env, MapSnapshotter::javaClass, "nativePtr",
- std::make_unique<MapSnapshotter, JNIEnv&, jni::Object<MapSnapshotter>, jni::Object<FileSource>, jni::jfloat, jni::jint, jni::jint, jni::String, jni::Object<LatLngBounds>, jni::Object<CameraPosition>, jni::String>,
+ std::make_unique<MapSnapshotter, JNIEnv&, jni::Object<MapSnapshotter>, jni::Object<FileSource>, jni::jfloat, jni::jint, jni::jint, jni::String, jni::Object<LatLngBounds>, jni::Object<CameraPosition>, jni::jboolean, jni::String>,
"nativeInitialize",
"finalize",
METHOD(&MapSnapshotter::setStyleUrl, "setStyleUrl"),
diff --git a/platform/android/src/snapshotter/map_snapshotter.hpp b/platform/android/src/snapshotter/map_snapshotter.hpp
index fa8a2d7a5a..8cd85060bf 100644
--- a/platform/android/src/snapshotter/map_snapshotter.hpp
+++ b/platform/android/src/snapshotter/map_snapshotter.hpp
@@ -36,6 +36,7 @@ public:
jni::String styleURL,
jni::Object<LatLngBounds> region,
jni::Object<CameraPosition> position,
+ jni::jboolean showLogo,
jni::String programCacheDir);
~MapSnapshotter();
@@ -59,6 +60,7 @@ private:
GenericUniqueWeakObject<MapSnapshotter> javaPeer;
float pixelRatio;
+ bool showLogo;
std::shared_ptr<mbgl::ThreadPool> threadPool;
std::unique_ptr<Actor<mbgl::MapSnapshotter::Callback>> snapshotCallback;