diff options
author | m-stephen <truestyle2005@163.com> | 2019-09-26 09:39:56 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-26 09:39:56 +0800 |
commit | fc2c02bbc6abaef52077fe5e9e78f772e6009967 (patch) | |
tree | 112c13466a3b38714e9d151b6241066967727012 /platform/android/src | |
parent | f131b9116f7ee07e8ef92a82c5df3c5aeba80f47 (diff) | |
parent | 7c2a7a263f9b3e90dd807ddd6d1dcbb783dec29b (diff) | |
download | qtlocation-mapboxgl-fc2c02bbc6abaef52077fe5e9e78f772e6009967.tar.gz |
Merge branch 'master' into stephen-improve-accuracy-for-camera
Diffstat (limited to 'platform/android/src')
-rw-r--r-- | platform/android/src/file_source.cpp | 7 | ||||
-rw-r--r-- | platform/android/src/map/camera_position.cpp | 21 |
2 files changed, 15 insertions, 13 deletions
diff --git a/platform/android/src/file_source.cpp b/platform/android/src/file_source.cpp index 05b57e5d1c..5f61aadba0 100644 --- a/platform/android/src/file_source.cpp +++ b/platform/android/src/file_source.cpp @@ -58,14 +58,15 @@ void FileSource::setAPIBaseUrl(jni::JNIEnv& env, const jni::String& url) { void FileSource::setResourceTransform(jni::JNIEnv& env, const jni::Object<FileSource::ResourceTransformCallback>& transformCallback) { if (transformCallback) { auto global = jni::NewGlobal<jni::EnvAttachingDeleter>(env, transformCallback); - resourceTransform = std::make_unique<Actor<ResourceTransform>>(*Scheduler::GetCurrent(), + resourceTransform = std::make_unique<Actor<ResourceTransform>>( + *Scheduler::GetCurrent(), // Capture the ResourceTransformCallback object as a managed global into // the lambda. It is released automatically when we're setting a new ResourceTransform in // a subsequent call. // Note: we're converting it to shared_ptr because this lambda is converted to a std::function, // which requires copyability of its captured variables. - [callback = std::make_shared<decltype(global)>(std::move(global))] - (mbgl::Resource::Kind kind, const std::string&& url_) { + [callback = std::make_shared<decltype(global)>(std::move(global))](mbgl::Resource::Kind kind, + const std::string& url_) { android::UniqueEnv _env = android::AttachEnv(); return FileSource::ResourceTransformCallback::onURL(*_env, *callback, int(kind), url_); }); diff --git a/platform/android/src/map/camera_position.cpp b/platform/android/src/map/camera_position.cpp index cbf5f2e408..4266b64fdf 100644 --- a/platform/android/src/map/camera_position.cpp +++ b/platform/android/src/map/camera_position.cpp @@ -44,19 +44,20 @@ mbgl::CameraOptions CameraPosition::getCameraOptions(jni::JNIEnv& env, const jni static auto tilt = javaClass.GetField<jni::jdouble>(env, "tilt"); static auto zoom = javaClass.GetField<jni::jdouble>(env, "zoom"); static auto paddingField = javaClass.GetField<jni::Array<jni::jdouble>>(env, "padding"); - static auto padding = position.Get(env, paddingField); + auto padding = position.Get(env, paddingField); auto center = LatLng::getLatLng(env, position.Get(env, target)); - return mbgl::CameraOptions { - center, - padding ? EdgeInsets {padding.Get(env, 1) * pixelRatio, padding.Get(env, 0) * pixelRatio, - padding.Get(env, 3) * pixelRatio, padding.Get(env, 2) * pixelRatio} : (EdgeInsets) {}, - {}, - position.Get(env, zoom), - position.Get(env, bearing), - position.Get(env, tilt) - }; + return mbgl::CameraOptions{center, + padding && padding.Length(env) == 4 ? EdgeInsets{padding.Get(env, 1) * pixelRatio, + padding.Get(env, 0) * pixelRatio, + padding.Get(env, 3) * pixelRatio, + padding.Get(env, 2) * pixelRatio} + : (EdgeInsets){}, + {}, + position.Get(env, zoom), + position.Get(env, bearing), + position.Get(env, tilt)}; } void CameraPosition::registerNative(jni::JNIEnv &env) { |